]> projects.mako.cc - selectricity/blobdiff - db/create.sql
An @edit=true declaration was missing from edit_voters that prevented the voter delet...
[selectricity] / db / create.sql
index e6013cfaf4a62876bc203b606142015bde80d1cf..2acf948b6ab57958f97ad5f8e30db30f799e37e5 100644 (file)
@@ -1,28 +1,23 @@
-# CREATE users TABLE
-#####################################
-
-#drop table if exists users;
-#create table users (
-# id int NOT NULL auto_increment,
-# login varchar(80) default NULL,
-# password varchar(40) default NULL,
-# primary key (id)
-#);
-
-## Create a default system user to own stage directions
-## and similar. Users cannot log in.
-#insert into users ( id, login ) values ( 1, "System Defaults" );
-
 # CREATE elections TABLE
 #####################################
 
 drop table if exists elections;
 create table elections (
- id int NOT NULL auto_increment,
+ id   int NOT NULL auto_increment,
  name varchar(100) NOT NULL, 
  description TEXT NOT NULL, 
- anonymous tinyint NOT NULL DEFAULT 0, 
- primary key (id)
+ anonymous tinyint NOT NULL DEFAULT 1, 
+ startdate datetime, 
+ enddate datetime NOT NULL, 
+ active tinyint NOT NULL DEFAULT 0,
+ viewable tinyint NOT NULL DEFAULT 1,
+ notices tinyint NOT NULL DEFAULT 0,
+ user_id int NULL,
+ quickuser varchar(255) NULL, #stores session_id for quickvote creators
+ election_method varchar(100) DEFAULT 'ssd',
+ `type` varchar(100) NOT NULL,
+ primary key (id),
+ constraint fk_user_election foreign key (user_id) references users(id)
 );
 
 # CREATE candidates TABLE
@@ -33,7 +28,21 @@ create table candidates (
  id int NOT NULL auto_increment,
  election_id int NOT NULL,
  name varchar(100) NOT NULL, 
- picture blob NOT NULL, 
+ description text NULL,
+ primary key (id)
+);
+
+# CREATE pictures TABLE
+#####################################
+
+drop table if exists pictures;
+create table pictures (
+ id int NOT NULL auto_increment,
+ filename varchar(200),
+ data blob, 
+ filetype varchar(100), 
+ candidate_id int NULL,
+ constraint fk_candidate_picture foreign key (candidate_id) references candidates(id),
  primary key (id)
 );
 
@@ -43,11 +52,18 @@ create table candidates (
 drop table if exists voters;
 create table voters (
  id int NOT NULL auto_increment,
- username varchar(100) NOT NULL, 
- password varchar(100) NOT NULL, 
+ email varchar(100) NULL, 
+ password varchar(100) NULL, 
+ contacted tinyint NOT NULL DEFAULT 0, 
+ election_id int NOT NULL, 
+ session_id varchar(32) DEFAULT NULL,
+ ipaddress varchar(32) DEFAULT NULL,
+ `type` varchar(100) NOT NULL,
+ constraint fk_election_voter foreign key (election_id) references election(id),
  primary key (id)
 );
 
+
 # CREATE tokens TABLE
 #####################################
 
@@ -55,6 +71,8 @@ drop table if exists tokens;
 create table tokens(
  id int NOT NULL auto_increment,
  token varchar(100) NOT NULL, 
+ vote_id int NOT NULL, 
+ constraint fk_vote_token foreign key (vote_id) references vote(id),
  primary key (id)
 );
 
@@ -65,9 +83,9 @@ drop table if exists votes;
 create table votes (
  id int NOT NULL auto_increment,
  voter_id int DEFAULT NULL,
- token_id int DEFAULT NULL,
+ confirmed tinyint NOT NULL DEFAULT 0,
+ time      datetime         DEFAULT NULL,
  constraint fk_vote_voter foreign key (voter_id) references voters(id),
- constraint fk_vote_token foreign key (token_id) references token(id),
  primary key (id)
 );
 
@@ -83,3 +101,30 @@ create table rankings (
  primary key (id)
 );
 
+# CREATE sessions TABLE
+######################################
+
+drop table if exists sessions;
+create table sessions (
+ id         int(11)      NOT NULL auto_increment,
+ sessid     varchar(255),
+ data       text,
+ updated_at datetime     DEFAULT  NULL,
+ primary    key (id),
+ index      session_index (sessid)
+);
+
+drop table if exists users;
+create table users (
+       id                        int         not null auto_increment,
+       login                     text,
+       ip                        text not null,
+       email                     text,
+       crypted_password          varchar(40),
+       salt                      varchar(40),
+       created_at                datetime,
+       updated_at                datetime,
+       remember_token            text,
+       remember_token_expires_at datetime,
+       primary key(id)
+);

Benjamin Mako Hill || Want to submit a patch?