611142c18f
I added this earlier not realizing it was elsewhere in the file. However, my comment is probably useful so I've left it.
66 lines
2.5 KiB
SQL
66 lines
2.5 KiB
SQL
DROP TABLE IF EXISTS `elections`;
|
|
CREATE TABLE `elections` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`type` enum('elections','referendum') NOT NULL default 'elections',
|
|
`name` varchar(150) NOT NULL default '',
|
|
`voting_start` datetime default NULL,
|
|
`voting_end` datetime default '0000-00-00 00:00:00',
|
|
`choices_nb` int(11) NOT NULL default '0',
|
|
`question` text NOT NULL,
|
|
PRIMARY KEY (`id`));
|
|
DROP TABLE IF EXISTS `election_anon_tokens`;
|
|
CREATE TABLE `election_anon_tokens` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`anon_token` varchar(200) NOT NULL default '',
|
|
`election_id` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=903 DEFAULT CHARSET=utf8;
|
|
DROP TABLE IF EXISTS `election_choices`;
|
|
CREATE TABLE `election_choices` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`election_id` int(11) NOT NULL default '0',
|
|
`choice` varchar(150) NOT NULL default '',
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 ;
|
|
|
|
/* Data in election_tmp_tokens only lives while the election is ongoing, and
|
|
** the PHP code deletes these entries when it records votes.
|
|
*/
|
|
|
|
DROP TABLE IF EXISTS `election_tmp_tokens`;
|
|
CREATE TABLE `election_tmp_tokens` (
|
|
`election_id` int(11) NOT NULL default '0',
|
|
`member_id` int(11) NOT NULL default '0',
|
|
`tmp_token` varchar(200) NOT NULL default ''
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
/* Not good normal form in election_voters table; there will be duplicates on
|
|
** the email_address, but we think of a election_voter_id as a identity tied a
|
|
** specific election. */
|
|
|
|
DROP TABLE IF EXISTS `election_voters`;
|
|
CREATE TABLE `election_voters` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`election_id` int(11) NOT NULL default '0',
|
|
`email_address` varchar(500) NOT NULL default ''
|
|
PRIMARY KEY (`id`));
|
|
|
|
|
|
/*
|
|
from each voter we prepare anon tokens
|
|
then insert those anon tokens to database
|
|
of course before a new election record should be created since its id is needed for anon_tokens
|
|
and election_choices are to be inserted
|
|
rest is handled by itself iirc
|
|
<bolsh> There's "election_votes" and "foundationmembers" too
|
|
I'm not sure if there's a join done between foundationmembers and the other tables
|
|
*/
|
|
|
|
DROP TABLE IF EXISTS `election_votes`;
|
|
CREATE TABLE `election_votes` (
|
|
`id` int(11) NOT NULL auto_increment,
|
|
`choice_id` int(11) NOT NULL default '0',
|
|
`anon_id` int(11) NOT NULL default '0',
|
|
`preference` int(11) NOT NULL default '0',
|
|
PRIMARY KEY (`id`));
|
|
|