X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/5a8b533b5abec8dc24674e4ef084b0b9779da8af..fc0a6a8d7ea15bcdb27ebdd58721401c7045c6e0:/db/create.sql diff --git a/db/create.sql b/db/create.sql old mode 100644 new mode 100755 index b7b50bf..e0c264f --- a/db/create.sql +++ b/db/create.sql @@ -1,18 +1,3 @@ -# 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 ##################################### @@ -21,10 +6,14 @@ create table elections ( id int NOT NULL auto_increment, name varchar(100) NOT NULL, description TEXT NOT NULL, - anonymous tinyint NOT NULL DEFAULT 0, - startdate datetime NOT NULL, - enddate datetime, - primary key (id) + anonymous tinyint NOT NULL DEFAULT 1, + startdate datetime, + enddate datetime NOT NULL, + active tinyint NOT NULL DEFAULT 0, + user_id int NULL, + quickvote tinyint NOT NULL DEFAULT 0, + primary key (id), + constraint fk_user_election foreign key (user_id) references users(id) ); # CREATE candidates TABLE @@ -35,7 +24,10 @@ 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, + picture_filename varchar(200), + picture_data blob, + picture_type varchar(100), primary key (id) ); @@ -45,14 +37,17 @@ create table candidates ( drop table if exists voters; create table voters ( id int NOT NULL auto_increment, - email 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, constraint fk_election_voter foreign key (election_id) references election(id), primary key (id) ); + # CREATE tokens TABLE ##################################### @@ -60,6 +55,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) ); @@ -70,9 +67,8 @@ 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, 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) ); @@ -88,3 +84,26 @@ create table rankings ( primary key (id) ); +# CREATE users TABLE +##################################### +DROP TABLE IF EXISTS `users`; +CREATE TABLE `users` ( + `id` int(11) NOT NULL auto_increment, + `login` varchar(80) NOT NULL default '', + `salted_password` varchar(40) NOT NULL default '', + `email` varchar(60) NOT NULL default '', + `firstname` varchar(40) default NULL, + `lastname` varchar(40) default NULL, + `salt` varchar(40) NOT NULL default '', + `verified` int(11) default '0', + `role` varchar(40) default NULL, + `security_token` varchar(40) default NULL, + `token_expiry` datetime default NULL, + `created_at` datetime default NULL, + `updated_at` datetime default NULL, + `logged_in_at` datetime default NULL, + `deleted` int(11) default '0', + `delete_after` datetime default NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +