X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=server%2Fdb%2Fcreate.sql;h=e4035a1593b51720470f02d6b901e0e0addb91cd;hb=4a2093139089632727de4f510127ef186cab528e;hp=11c3574e89233ec895a4dd38f8fced972788a63b;hpb=92b82defacccf9c4d3755924a71fcb584002ccc6;p=vchess.git diff --git a/server/db/create.sql b/server/db/create.sql index 11c3574e..e4035a15 100644 --- a/server/db/create.sql +++ b/server/db/create.sql @@ -3,7 +3,8 @@ create table Variants ( id integer primary key, name varchar unique, - description text + description text, + noProblems boolean ); create table Users ( @@ -13,63 +14,80 @@ create table Users ( loginToken varchar, loginTime datetime, sessionToken varchar, - notify boolean + created datetime, + notify boolean, + bio text default '' ); create table Problems ( id integer primary key, added datetime, + fen varchar, uid integer, vid integer, - fen varchar, - instructions text, + instruction text, solution text, foreign key (uid) references Users(id), foreign key (vid) references Variants(id) ); --- All the following tables are for correspondance play only --- (Live games are stored in browser) - create table Challenges ( id integer primary key, added datetime, uid integer, target integer, vid integer, + randomness integer, fen varchar, - timeControl varchar, + cadence varchar, foreign key (uid) references Users(id), foreign key (vid) references Variants(id) ); --- NOTE: no need for a "created" field, it's deduced from first move playing time +create table GameStat ( + vid integer, + total integer default 0, + foreign key (vid) references Variants(id) +); + create table Games ( id integer primary key, vid integer, fenStart varchar, --initial state fen varchar, --current state - score varchar, - timeControl varchar, - foreign key (vid) references Variants(id) + white integer, + black integer, + score varchar default '*', + scoreMsg varchar, + cadence varchar, + randomness integer, --for rematch + created datetime, + drawOffer character default '', + rematchOffer character default '', + deletedByWhite boolean, + deletedByBlack boolean, + chatReadWhite datetime, + chatReadBlack datetime, + foreign key (vid) references Variants(id), + foreign key (white) references Users(id), + foreign key (black) references Users(id) ); --- Store informations about players in a corr game -create table Players ( +create table Chats ( gid integer, - uid integer, - color character, - foreign key (gid) references Games(id), - foreign key (uid) references Users(id) + name varchar, + msg varchar, + added datetime ); create table Moves ( gid integer, squares varchar, --description, appear/vanish/from/to - message varchar, played datetime, --when was this move played? idx integer, --index of the move in the game foreign key (gid) references Games(id) ); +create index scoreIdx on Games(score); + pragma foreign_keys = on;