X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=server%2Fdb%2Fcreate.sql;h=e4035a1593b51720470f02d6b901e0e0addb91cd;hp=936992ce3289d0130dc627ef2eb081bb2a7f0014;hb=4a2093139089632727de4f510127ef186cab528e;hpb=625022fdcf750f0aff8fcd699f7e9b89730e1d10 diff --git a/server/db/create.sql b/server/db/create.sql index 936992ce..e4035a15 100644 --- a/server/db/create.sql +++ b/server/db/create.sql @@ -1,86 +1,93 @@ -- Database should be in this folder, and named 'vchess.sqlite' create table Variants ( - id integer primary key, - name varchar unique, - description text + id integer primary key, + name varchar unique, + description text, + noProblems boolean ); create table Users ( - id integer primary key, - name varchar unique, - email varchar unique, - loginToken varchar, - loginTime datetime, - sessionToken varchar, - notify boolean + id integer primary key, + name varchar unique, + email varchar unique, + loginToken varchar, + loginTime datetime, + sessionToken varchar, + created datetime, + notify boolean, + bio text default '' ); create table Problems ( - id integer primary key, - added datetime, - uid integer, - vid integer, - fen varchar, - instructions text, - solution text, - foreign key (uid) references Users(id), - foreign key (vid) references Variants(id) + id integer primary key, + added datetime, + fen varchar, + uid integer, + vid integer, + 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 only in browsers) - create table Challenges ( - id integer primary key, - added datetime, - uid integer, - vid integer, - nbPlayers integer, - fen varchar, - mainTime integer, - addTime integer, - foreign key (uid) references Users(id), - foreign key (vid) references Variants(id) + id integer primary key, + added datetime, + uid integer, + target integer, + vid integer, + randomness integer, + fen varchar, + cadence varchar, + foreign key (uid) references Users(id), + foreign key (vid) references Variants(id) ); --- Store informations about players who accept a challenge -create table WillPlay ( - cid integer, - uid integer, - foreign key (cid) references Challenges(id), - foreign key (uid) references Users(id) +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, - mainTime integer, - addTime integer, - foreign key (vid) references Variants(id) + id integer primary key, + vid integer, + fenStart varchar, --initial state + fen varchar, --current state + 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 ( - gid integer, - uid integer, - color character, - rtime integer, --remaining time in milliseconds - foreign key (gid) references Games(id), - foreign key (uid) references Users(id) +create table Chats ( + gid integer, + name varchar, + msg varchar, + added datetime ); create table Moves ( - gid integer, - move varchar, - message varchar, - played datetime, --when was this move played? - idx integer, --index of the move in the game - color character, --required for e.g. Marseillais Chess - foreign key (gid) references Games(id) + gid integer, + squares varchar, --description, appear/vanish/from/to + 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;