-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreatetables.sql
43 lines (39 loc) · 1.37 KB
/
createtables.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* Create User Table */
CREATE TABLE 'users' (
'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
'username' VARCHAR(50) NOT NULL UNIQUE,
'hash' TEXT NOT NULL
);
/* Create User ROOMS status= [edit, open, closed]*/
CREATE TABLE rooms (
'room_id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,
'room_name' VARCHAR(50) NOT NULL,
'user_id' INTEGER NOT NULL,
'status' TEXT NOT NULL DEFAULT 'edit',
FOREIGN KEY (user_id) REFERENCES 'users' ('id')
);
/* Create Options Table */
CREATE TABLE options (
'option_id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
'option_name' VARCHAR(50) NOT NULL,
'room_id' INTEGER NOT NULL,
FOREIGN KEY (room_id) REFERENCES 'rooms' ('room_id')
);
/* Voting Table */
CREATE TABLE voting (
'vote_id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
'option_id' VARCHAR(255) NOT NULL,
'vote' INTEGER NOT NULL,
'user_id' INTEGER NOT NULL,
'room_id' INTEGER NOT NULL,
FOREIGN KEY (room_id) REFERENCES 'rooms' ('room_id')
);
/* Track the rooms where the user has joined status: [default=join, leave], voted=[no, yes] */
CREATE TABLE roomjoins (
'roomjoin_id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
'room_id' INTEGER NOT NULL,
'user_id' INTEGER NOT NULL,
'status' TEXT NOT NULL,
'voted' TEXT NOT NULL DEFAULT 'no',
FOREIGN KEY (user_id) REFERENCES 'users' ('id')
);