Experimental change: options replacing randomness (more general)
[vchess.git] / server / db / create.sql
index 21c7728..248e597 100644 (file)
@@ -3,7 +3,10 @@
 create table Variants (
   id integer primary key,
   name varchar unique,
-  description text
+  display varchar,
+  groupe integer,
+  description text,
+  noProblems boolean
 );
 
 create table Users (
@@ -14,11 +17,21 @@ create table Users (
   loginTime datetime,
   sessionToken varchar,
   created datetime,
-  notify boolean
+  notify boolean,
+  bio text default ''
 );
 
--- All the following tables are for correspondance play only
--- (Live games are stored in browser)
+create table Problems (
+  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)
+);
 
 create table Challenges (
   id integer primary key,
@@ -26,23 +39,40 @@ create table Challenges (
   uid integer,
   target integer,
   vid integer,
+  options varchar,
   fen varchar,
-  timeControl varchar,
+  cadence varchar,
   foreign key (uid) references Users(id),
   foreign key (vid) references Variants(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,
+  white integer,
+  black integer,
+  score varchar default '*',
   scoreMsg varchar,
-  timeControl varchar,
-  created datetime, --used only for DB cleaning
-  drawOffer character,
-  foreign key (vid) references Variants(id)
+  cadence varchar,
+  options varchar, --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)
 );
 
 create table Chats (
@@ -52,15 +82,6 @@ create table Chats (
   added datetime
 );
 
--- Store informations about players in a corr game
-create table Players (
-  gid integer,
-  uid integer,
-  color character,
-  foreign key (gid) references Games(id),
-  foreign key (uid) references Users(id)
-);
-
 create table Moves (
   gid integer,
   squares varchar, --description, appear/vanish/from/to
@@ -69,4 +90,6 @@ create table Moves (
   foreign key (gid) references Games(id)
 );
 
+create index scoreIdx on Games(score);
+
 pragma foreign_keys = on;