reuse random number: test select distinct
[e-DoKo.git] / create_database.sql
index ed6d3f67ff891ab31a3ea19c4b7766a66a8fb36a..795dfe110000964b4c92d4fa545e2bdc7a6482ef 100644 (file)
@@ -1,3 +1,22 @@
+/* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Arun Persaud <arun@nubati.net>
+ *
+ *   This file is part of e-DoKo.
+ *
+ *   e-DoKo is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   e-DoKo is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with e-DoKo.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
 -- MySQL dump 10.9
 --
 -- Host: localhost    Database: doko
 -- MySQL dump 10.9
 --
 -- Host: localhost    Database: doko
 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
 
 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
 
+
+--
+-- Table structure for table `Version`
+--
+
+DROP TABLE IF EXISTS `Version`;
+CREATE TABLE `Version` (
+  `version` int NOT NULL default '5'
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `Card`
+--
+
+
+/*!40000 ALTER TABLE `Card` DISABLE KEYS */;
+LOCK TABLES `Version` WRITE;
+INSERT INTO `Version` VALUES (2);
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `Version` ENABLE KEYS */;
+
+
 --
 -- Table structure for table `Card`
 --
 --
 -- Table structure for table `Card`
 --
@@ -47,8 +88,10 @@ CREATE TABLE `Comment` (
   `id` int(11) NOT NULL auto_increment,
   `user_id` int(11) default NULL,
   `play_id` int(11) default NULL,
   `id` int(11) NOT NULL auto_increment,
   `user_id` int(11) default NULL,
   `play_id` int(11) default NULL,
+  `game_id` int(11) default NULL,
   `comment` text,
   `comment` text,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `play_id` (`play_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -61,6 +104,30 @@ LOCK TABLES `Comment` WRITE;
 UNLOCK TABLES;
 /*!40000 ALTER TABLE `Comment` ENABLE KEYS */;
 
 UNLOCK TABLES;
 /*!40000 ALTER TABLE `Comment` ENABLE KEYS */;
 
+--
+-- Table structure for table `Notes`
+--
+
+DROP TABLE IF EXISTS `Notes`;
+CREATE TABLE `Notes` (
+  `mod_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+  `create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
+  `id` int(11) NOT NULL auto_increment,
+  `user_id` int(11) default NULL,
+  `game_id` int(11) default NULL,
+  `comment` text,
+  UNIQUE KEY `id` (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `Notes`
+--
+
+/*!40000 ALTER TABLE `Notes` DISABLE KEYS */;
+LOCK TABLES `Notes` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `Notes` ENABLE KEYS */;
+
 --
 -- Table structure for table `Game`
 --
 --
 -- Table structure for table `Game`
 --
@@ -73,13 +140,14 @@ CREATE TABLE `Game` (
   `type` enum('normal','solo','wedding','poverty','dpoverty') default NULL,
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `sickness` int(11) default NULL,
   `type` enum('normal','solo','wedding','poverty','dpoverty') default NULL,
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `sickness` int(11) default NULL,
-  `startplayer` tinyint(4) default '1', 
-  `player` int(11) default NULL, 
-  `status` enum('pre','play','gameover') default NULL,
+  `startplayer` tinyint(4) default '1',
+  `player` int(11) default NULL,
+  `status` enum('pre','play','gameover','cancel-timedout','cancel-nines','cancel-trump','cancel-noplay','cancel-lowtrump') default NULL,
   `ruleset` int(11) default NULL,
   `session` int(11) default NULL,
   `id` int(11) NOT NULL auto_increment,
   `ruleset` int(11) default NULL,
   `session` int(11) default NULL,
   `id` int(11) NOT NULL auto_increment,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `session` (`session`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -104,10 +172,11 @@ CREATE TABLE `Rulesets` (
   `dullen` enum('none','firstwins','secondwins') default 'secondwins',
   `schweinchen` enum ('none','both','second','secondaftercall') default 'second',
   `call` enum ('1st-own-card','5th-card','9-cards') default '1st-own-card',
   `dullen` enum('none','firstwins','secondwins') default 'secondwins',
   `schweinchen` enum ('none','both','second','secondaftercall') default 'second',
   `call` enum ('1st-own-card','5th-card','9-cards') default '1st-own-card',
+  `lowtrump` enum('poverty','cancel','none') default 'poverty',
   `id` int(11) NOT NULL auto_increment,
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
   `id` int(11) NOT NULL auto_increment,
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-  
+
 --
 -- Dumping data for table `Rulesets`
 --
 --
 -- Dumping data for table `Rulesets`
 --
@@ -133,10 +202,12 @@ CREATE TABLE `Hand` (
   `status` enum('start','init','check','poverty','play','gameover') default 'start',
   `position` tinyint(4) NOT NULL default '0',
   `party` enum('re','contra') default NULL,
   `status` enum('start','init','check','poverty','play','gameover') default 'start',
   `position` tinyint(4) NOT NULL default '0',
   `party` enum('re','contra') default NULL,
-  `sickness` enum('wedding','nines','poverty','solo') default NULL,
+  `sickness` enum('wedding','nines','poverty','solo','lowtrump') default NULL,
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `point_call` enum('120','90','60','30','0') default NULL,
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `point_call` enum('120','90','60','30','0') default NULL,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `game_id` (`game_id`),
+  KEY `user_id` (`user_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -159,7 +230,8 @@ CREATE TABLE `Hand_Card` (
   `hand_id` int(11) NOT NULL default '0',
   `card_id` int(11) NOT NULL default '0',
   `played` enum('true','false') default 'false',
   `hand_id` int(11) NOT NULL default '0',
   `card_id` int(11) NOT NULL default '0',
   `played` enum('true','false') default 'false',
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `hand_id` (`hand_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -172,6 +244,32 @@ LOCK TABLES `Hand_Card` WRITE;
 UNLOCK TABLES;
 /*!40000 ALTER TABLE `Hand_Card` ENABLE KEYS */;
 
 UNLOCK TABLES;
 /*!40000 ALTER TABLE `Hand_Card` ENABLE KEYS */;
 
+--
+-- Table structure for table `Card_Exchange`
+--
+
+DROP TABLE IF EXISTS `Card_Exchange`;
+CREATE TABLE `Card_Exchange` (
+  `id` int(11) NOT NULL auto_increment,
+  `orig_hand_id` int(11) NOT NULL default '0',
+  `new_hand_id` int(11) NOT NULL default '0',
+  `card_id` int(11) NOT NULL default '0',
+  UNIQUE KEY `id` (`id`),
+  KEY `orig_hand_id` (`orig_hand_id`),
+  KEY `new_hand_id` (`new_hand_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `Hand_Card`
+--
+
+
+/*!40000 ALTER TABLE `Hand_Card` DISABLE KEYS */;
+LOCK TABLES `Card_Exchange` WRITE;
+UNLOCK TABLES;
+/*!40000 ALTER TABLE `Hand_Card` ENABLE KEYS */;
+
+
 --
 -- Table structure for table `Play`
 --
 --
 -- Table structure for table `Play`
 --
@@ -184,7 +282,8 @@ CREATE TABLE `Play` (
   `trick_id` int(11) NOT NULL default '0',
   `hand_card_id` int(11) NOT NULL default '0',
   `sequence` tinyint(4) NOT NULL default '0',
   `trick_id` int(11) NOT NULL default '0',
   `hand_card_id` int(11) NOT NULL default '0',
   `sequence` tinyint(4) NOT NULL default '0',
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `trick_id` (`trick_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -209,11 +308,12 @@ CREATE TABLE `Score` (
   `party` enum('re','contra') default NULL ,
   `winner_id` int(11) default NULL ,
   `looser_id` int(11) default NULL ,
   `party` enum('re','contra') default NULL ,
   `winner_id` int(11) default NULL ,
   `looser_id` int(11) default NULL ,
-  `score` enum('120', 'call120','against120','90','call90','against90','made90'
+  `score` enum('120', 'call120','against120','90','call90','against90','made90',
           '60','call60','against60','made60','30','call30','against30','made30',
           '0','call0','against0','made0',
           'fox','karlchen','dulle','doko','againstqueens') default NULL,
           '60','call60','against60','made60','30','call30','against30','made30',
           '0','call0','against0','made0',
           'fox','karlchen','dulle','doko','againstqueens') default NULL,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `game_id` (`game_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -237,7 +337,8 @@ CREATE TABLE `Trick` (
   `id` int(11) NOT NULL auto_increment,
   `game_id` int(11) NOT NULL default '0',
   `winner`  tinyint(4) default NULL,
   `id` int(11) NOT NULL auto_increment,
   `game_id` int(11) NOT NULL default '0',
   `winner`  tinyint(4) default NULL,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `game_id` (`game_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -259,9 +360,10 @@ CREATE TABLE `User` (
   `id` int(11) NOT NULL auto_increment,
   `fullname` varchar(64) default NULL,
   `email` varchar(64) default NULL,
   `id` int(11) NOT NULL auto_increment,
   `fullname` varchar(64) default NULL,
   `email` varchar(64) default NULL,
-  `password` varchar(32) default NULL,
+  `password` varchar(62) default NULL,
   `timezone` varchar(64) default 'Europe/London',
   `last_login` timestamp NOT NULL default '0000-00-00 00:00:00',
   `timezone` varchar(64) default 'Europe/London',
   `last_login` timestamp NOT NULL default '0000-00-00 00:00:00',
+  `create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
@@ -286,7 +388,8 @@ CREATE TABLE `User_Game_Prefs` (
   `game_id` int(11) NOT NULL default '0',
   `pref_key` varchar(64) default NULL,
   `value` varchar(64) default NULL,
   `game_id` int(11) NOT NULL default '0',
   `pref_key` varchar(64) default NULL,
   `value` varchar(64) default NULL,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `user_id` (`user_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -309,7 +412,8 @@ CREATE TABLE `User_Prefs` (
   `user_id` int(11) NOT NULL default '0',
   `pref_key` varchar(64) default NULL,
   `value` varchar(64) default NULL,
   `user_id` int(11) NOT NULL default '0',
   `pref_key` varchar(64) default NULL,
   `value` varchar(64) default NULL,
-  UNIQUE KEY `id` (`id`)
+  UNIQUE KEY `id` (`id`),
+  KEY `user_id` (`user_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 --
@@ -367,9 +471,6 @@ UNLOCK TABLES;
 /*!40000 ALTER TABLE `Reminder` ENABLE KEYS */;
 
 
 /*!40000 ALTER TABLE `Reminder` ENABLE KEYS */;
 
 
-
-
-
 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
 /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
 /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
 /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
@@ -377,3 +478,25 @@ UNLOCK TABLES;
 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
+DROP TABLE IF EXISTS `user_openids`;
+create table user_openids (
+  openid_url varchar(255) not null,
+  primary key (openid_url),
+
+  user_id int not null,
+  index (user_id)
+);
+
+DROP TABLE IF EXISTS `digest_email`;
+create table digest_email (
+  `id` int(11) NOT NULL auto_increment,
+  `email` varchar(255) default null,
+  `create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
+  `type` enum('misc','your_turn') NOT NULL default 'misc',
+  `game_id` int(11) default NULL,
+  `content` text,
+  UNIQUE KEY `id` (`id`),
+  index (email)
+);
+
+