Author: Mark Boylan
Date: 20:53:40 03/03/06
Go up one level in this thread
On March 03, 2006 at 21:51:14, Dann Corbit wrote: >Since you're a database guy, I would be keenly interested in any feedback or new >ideas for improvements. > >The generated SQL script is for SQL*Server, but I can use ERWin to target lots >of others. Probably something more ANSI using nothing but declarative RI would >be better. Dann, I just looked at your diagram. It's pretty good. I wouldn't break out version from engine unless you think that someone might like to a query like "all evaluations from engines at version 3." I combined them, but if you want to break them out, I'd do it the opposite way, so the name is abstracted and the version is specific. Other than that I think it's pretty good. I dropped the PositionStatistic table, but only because it looked like it needed a relationship to another table that wasn't in the diagram. I renamed a few table to be more specific. For instance Your EngineAuthor became Author, AuthorList became EngineAuthor and I added a BookAuthor. You'll notice that I slid a few fields around. For instance, the hash table size is not a property of the machine, but of the analysis. Machines have the option of changing hash table sizes at will while retaining identity. Other than that, it's good. But can you explain what bm, er, pm, am & ce mean? Im not sure what those are. Here's the DDL. It think it's ANSI, but let me know if you have problems running it. I can also make a diagram if you want. Just let me know. create table country ( country_id int not null primary key, country_name varchar(255), country_abbr varchar(8) ); create table author ( author_id int not null primary key, country_id int not null references country, first_name varchar(255) null, middle_name varchar(255) null, last_name varchar(255) not null, title varchar(255) null ); create table engine ( engine_id int not null primary key, engine_name varchar(255) not null, engine_version varchar(255) ); create table engine_author ( engine_id int not null references engine(engine_id), author_id int not null references author(author_id), primary key (engine_id, author_id) ); create table book ( book_id int not null primary key, book_name varchar(255) not null, isbn varchar(20), lccn varchar(20), upc varchar(20) ); create table book_author ( book_id int not null references book(book_id), author_id int not null references author(author_id), primary key (book_id, author_id) ); create table position ( position_id int not null primary key, position_fen varchar(255) ); create table host ( host_id int not null primary key, hostname varchar(255) not null, cpu_vendor varchar(50), cpu_model varchar(50), cpu_id_name varchar(50), cpu_id_sig char(4), ram int ); create table evaluation ( position_id int not null references position(position_id), engine_id int not null references engine(engine_id), host_id int not null references host(host_id), hash_size int, flags int, centipawns int, depth int, bm char(8), er char(8), pm char(8), am char(8), nodes float, seconds int, primary key (position_id, engine_id, host_id) ); create table opinion ( position_id int not null references position(position_id), book_id int not null references book(book_id), NAG varchar(20), ce int, bm char(8), er char(8), pm char(8), am char(8), primary key (position_id, book_id) );
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.