-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup.sql
108 lines (93 loc) · 3.76 KB
/
setup.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/**
* CLEANUP
*/
-- CREATE DATABASE IF NOT EXISTS ds;
-- CREATE USER 'admin'@'localhost' IDENTIFIED BY 'abc123';
-- GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost'; /* TODO: Assess privileges */
-- FLUSH PRIVILEGES;
CREATE TABLE IF NOT EXISTS users (
id INT(10) AUTO_INCREMENT,
email VARCHAR(255) NOT NULL,
fullName VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL,
admin TINYINT(1) DEFAULT 0,
active VARCHAR(255) NOT NULL,
resetToken VARCHAR(255) DEFAULT NULL,
resetComplete VARCHAR(3) DEFAULT 'No',
dor TIMESTAMP, /* dor = Date of Registration */
PRIMARY KEY(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS unit (
id INT(10) AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
published TINYINT(1) DEFAULT 0,
unit_img INT(10),
PRIMARY KEY(id),
FOREIGN KEY (unit_img) REFERENCES files(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS files (
id INT(10) AUTO_INCREMENT,
file_name VARCHAR(255) NOT NULL,
loc_name VARCHAR(255) NOT NULL,
PRIMARY KEY(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS quiz (
id INT(10) AUTO_INCREMENT,
unit_id INT(10) NOT NULL,
name VARCHAR(100) NOT NULL,
published TINYINT(1) DEFAULT 0,
PRIMARY KEY(id),
FOREIGN KEY (unit_id) REFERENCES unit(id) ON DELETE CASCADE
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- /**
-- * Questions for Quizes
-- * Each questions belongs to a quiz
-- */
CREATE TABLE IF NOT EXISTS quiz_question (
id INT(10) AUTO_INCREMENT,
quiz_id INT(10) NOT NULL,
question VARCHAR(255) NOT NULL,
-- correct_answer INT(10) NOT NULL,
question_img INT(10),
PRIMARY KEY (id),
FOREIGN KEY (quiz_id) REFERENCES quiz(id) ON DELETE CASCADE,
FOREIGN KEY (question_img) REFERENCES files(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- /**
-- * Possible answers for a question
-- * Stores a users answer to a question
-- */
CREATE TABLE IF NOT EXISTS quiz_answer (
id INT(10) AUTO_INCREMENT NOT NULL,
question_id INT(10) NOT NULL,
choice VARCHAR(150) NOT NULL,
is_correct TINYINT(1) DEFAULT 0, -- If = 1 then it is a correct answer
PRIMARY KEY (id),
FOREIGN KEY (question_id) REFERENCES quiz_question(id) ON DELETE CASCADE
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE user_quiz_answers (
id int(10) AUTO_INCREMENT,
user_id int(10) NOT NULL,
question_id int(10) NOT NULL,
answer int(10) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (question_id) REFERENCES quiz_question(id),
FOREIGN KEY (answer) REFERENCES quiz_answer(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS theory (
id INT(10) AUTO_INCREMENT,
unit_id INT(10) NOT NULL,
title VARCHAR(255) NOT NULL,
link VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (unit_id) REFERENCES unit(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS information (
id int(10) AUTO_INCREMENT,
unit_id INT(10) NOT NULL,
title VARCHAR(255) NOT NULL,
info VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (unit_id) REFERENCES unit(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;