X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/cc4532dee83d19baf79b35fadf7064b9b5c3948a..a38724bea6c09b479a93948b6ef4ef61edd24f39:/db/create.sql?ds=sidebyside diff --git a/db/create.sql b/db/create.sql index e6013cf..2acf948 100644 --- a/db/create.sql +++ b/db/create.sql @@ -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) +);