-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathschema.sql
72 lines (66 loc) · 2.58 KB
/
schema.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
use confusion;
CREATE TABLE dish (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) UNIQUE NOT NULL,
image VARCHAR(50) NOT NULL,
category VARCHAR(20) NOT NULL,
label VARCHAR(10) DEFAULT '',
price FLOAT NOT NULL,
featured BOOLEAN NOT NULL DEFAULT 0,
description TEXT NOT NULL,
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE comment (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
dishId INT(6) UNSIGNED NOT NULL,
rating TINYINT(1) UNSIGNED NOT NULL,
comment TEXT,
authorId INT(6) UNSIGNED NOT NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (dishId) REFERENCES dish(id) ON DELETE CASCADE,
FOREIGN KEY (authorId) REFERENCES user(id) ON DELETE CASCADE
);
CREATE TABLE leader (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
image VARCHAR(50) NOT NULL,
designation VARCHAR(50) NOT NULL,
abbr VARCHAR(10) NOT NULL,
featured BOOLEAN NOT NULL DEFAULT 0,
description TEXT NOT NULL,
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE promotion (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
image VARCHAR(50) NOT NULL,
label VARCHAR(20) NOT NULL DEFAULT '',
price FLOAT NOT NULL,
featured BOOLEAN NOT NULL DEFAULT 0,
description TEXT NOT NULL,
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE user (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
facebookId VARCHAR(50),
firstname VARCHAR(50) NOT NULL,
lastname VARCHAR(50) NOT NULL,
admin BOOLEAN NOT NULL DEFAULT false,
username VARCHAR(15) UNIQUE NOT NULL,
password TEXT,
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE favoriteDish (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
userId INT(6) UNSIGNED,
dishId INT(6) UNSIGNED,
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY `unique_userId_dishId` (`userId`, `dishId`),
FOREIGN KEY (userId) REFERENCES user(id) ON DELETE CASCADE,
FOREIGN KEY (dishId) REFERENCES dish(id) ON DELETE CASCADE
);