]> projects.mako.cc - selectricity-live/blob - db/create.sql
My first gigantic-blob commit....
[selectricity-live] / db / create.sql
1 # CREATE elections TABLE
2 #####################################
3
4 drop table if exists elections;
5 create table elections (
6  id   int NOT NULL auto_increment,
7  name varchar(100) NOT NULL, 
8  description TEXT NOT NULL, 
9  anonymous tinyint NOT NULL DEFAULT 1, 
10  startdate datetime, 
11  enddate datetime NOT NULL, 
12  active tinyint NOT NULL DEFAULT 0,
13  viewable tinyint NOT NULL DEFAULT 1,
14  notices tinyint NOT NULL DEFAULT 0,
15  user_id int NULL,
16  quickuser varchar(255) NULL, #stores session_id for quickvote creators
17  election_method varchar(100) DEFAULT 'ssd',
18  `type` varchar(100) NOT NULL,
19  primary key (id),
20  constraint fk_user_election foreign key (user_id) references users(id)
21 );
22
23 # CREATE candidates TABLE
24 #####################################
25
26 drop table if exists candidates;
27 create table candidates (
28  id int NOT NULL auto_increment,
29  election_id int NOT NULL,
30  name varchar(100) NOT NULL, 
31  description text NULL,
32  primary key (id)
33 );
34
35 # CREATE pictures TABLE
36 #####################################
37
38 drop table if exists pictures;
39 create table pictures (
40  id int NOT NULL auto_increment,
41  filename varchar(200),
42  data blob, 
43  filetype varchar(100), 
44  candidate_id int NULL,
45  constraint fk_candidate_picture foreign key (candidate_id) references candidates(id),
46  primary key (id)
47 );
48
49 # CREATE voters TABLE
50 #####################################
51
52 drop table if exists voters;
53 create table voters (
54  id int NOT NULL auto_increment,
55  email varchar(100) NULL, 
56  password varchar(100) NULL, 
57  contacted tinyint NOT NULL DEFAULT 0, 
58  election_id int NOT NULL, 
59  session_id varchar(32) DEFAULT NULL,
60  ipaddress varchar(32) DEFAULT NULL,
61  `type` varchar(100) NOT NULL,
62  constraint fk_election_voter foreign key (election_id) references election(id),
63  primary key (id)
64 );
65
66
67 # CREATE tokens TABLE
68 #####################################
69
70 drop table if exists tokens;
71 create table tokens(
72  id int NOT NULL auto_increment,
73  token varchar(100) NOT NULL, 
74  vote_id int NOT NULL, 
75  constraint fk_vote_token foreign key (vote_id) references vote(id),
76  primary key (id)
77 );
78
79 # CREATE votes TABLE
80 #####################################
81
82 drop table if exists votes;
83 create table votes (
84  id int NOT NULL auto_increment,
85  voter_id int DEFAULT NULL,
86  confirmed tinyint NOT NULL DEFAULT 0,
87  time      datetime         DEFAULT NULL,
88  constraint fk_vote_voter foreign key (voter_id) references voters(id),
89  primary key (id)
90 );
91
92 # CREATE rankings TABLE
93 #####################################
94
95 drop table if exists rankings;
96 create table rankings (
97  id int NOT NULL auto_increment,
98  vote_id int DEFAULT NULL,
99  candidate_id int DEFAULT NULL,
100  rank int DEFAULT NULL,
101  primary key (id)
102 );
103
104 # CREATE sessions TABLE
105 ######################################
106
107 drop table if exists sessions;
108 create table sessions (
109  id         int(11)      NOT NULL auto_increment,
110  sessid     varchar(255),
111  data       text,
112  updated_at datetime     DEFAULT  NULL,
113  primary    key (id),
114  index      session_index (sessid)
115 );
116
117 # CREATE users TABLE
118 #####################################
119 #DROP TABLE IF EXISTS `users`;
120 #CREATE TABLE `users` (
121 #  `id` int(11) NOT NULL auto_increment,
122 #  `login` varchar(80) NOT NULL default '',
123 #  `salted_password` varchar(40) NOT NULL default '',
124 #  `email` varchar(60) NOT NULL default '',
125 #  `firstname` varchar(40) default NULL,
126 #  `lastname` varchar(40) default NULL,
127 #  `salt` varchar(40) NOT NULL default '',
128 #  `verified` int(11) default '0',
129 #  `role` varchar(40) default NULL,
130 #  `security_token` varchar(40) default NULL,
131 #  `token_expiry` datetime default NULL,
132 #  `created_at` datetime default NULL,
133 #  `updated_at` datetime default NULL,
134 #  `logged_in_at` datetime default NULL,
135 #  `deleted` int(11) default '0',
136 #  `delete_after` datetime default NULL,
137 #  PRIMARY KEY  (`id`)
138 #) ENGINE=InnoDB DEFAULT CHARSET=latin1;
139
140 #Following is the new users table that goes with acts_as_authenticated
141 #Is simpler for now, saving the old table while in transition between 
142 #the two for ideas on what attributes may be helpful/necessary
143 drop table if exists users;
144 create table users (
145         id                        int         not null auto_increment,
146         login                     text,
147         ip                        text not null,
148         email                     text,
149         crypted_password          varchar(40),
150         salt                      varchar(40),
151         created_at                datetime,
152         updated_at                datetime,
153         remember_token            text,
154         remember_token_expires_at datetime,
155         primary key(id)
156 );

Benjamin Mako Hill || Want to submit a patch?