Repository navigation
Expand file tree
/
Copy pathdb.sql
More file actions
116 lines (102 loc) · 2.75 KB
/
Copy pathdb.sql
File metadata and controls
116 lines (102 loc) · 2.75 KB
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
109
110
111
112
113
114
115
116
CREATE DATABASE TDBlog;
USE TDBlog;
CREATE TABLE ROLE
(
ID NVARCHAR(16) PRIMARY KEY,
NAME NVARCHAR(30)
);
CREATE TABLE USER
(
ID NVARCHAR(16) PRIMARY KEY,
NAME NVARCHAR(30),
USERNAME NVARCHAR(30),
PASSWORD NVARCHAR(50),
AVATAR NVARCHAR(100),
REGISTEREDAT TIMESTAMP,
ROLEID NVARCHAR(16)
);
CREATE TABLE POST
(
ID NVARCHAR(16) PRIMARY KEY,
NAME NVARCHAR(256),
CONTENT NVARCHAR(21000),
IMAGE NVARCHAR(100),
VIEW INT,
TIME INT,
CREATEDAT TIMESTAMP,
UPDATEDAT TIMESTAMP,
AUTHORID NVARCHAR(16),
TAGID NVARCHAR(16)
);
CREATE TABLE STATEHISTORY
(
ID NVARCHAR(16),
STATE INT,
AT TIMESTAMP,
POSTID NVARCHAR(16)
);
CREATE TABLE TAG
(
ID NVARCHAR(16) PRIMARY KEY,
NAME NVARCHAR(256)
);
ALTER TABLE USER
ADD CONSTRAINT FK_USER_ROLE
FOREIGN KEY (ROLEID)
REFERENCES ROLE(ID)
ON DELETE CASCADE;
ALTER TABLE POST
ADD CONSTRAINT FK_POST_AUTHOR
FOREIGN KEY (AUTHORID)
REFERENCES USER(ID)
ON DELETE CASCADE;
ALTER TABLE POST
ADD CONSTRAINT FK_TAG_POST
FOREIGN KEY (TAGID)
REFERENCES TAG(ID)
ON DELETE CASCADE;
ALTER TABLE STATEHISTORY
ADD CONSTRAINT FK_STATE_POST
FOREIGN KEY (POSTID)
REFERENCES POST(ID)
ON DELETE CASCADE;
INSERT INTO ROLE(ID, NAME)
VALUES('ROLE_01', 'ADMIN');
INSERT INTO ROLE(ID, NAME)
VALUES('ROLE_02', 'USER');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_01', 'Khoa học - Công nghệ');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_02', 'Sách');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_03', 'Du lịch');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_04', 'Đời sống hằng ngày');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_05', 'Phát triển bản thân');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_06', 'Quan điểm - Tranh luận');
INSERT INTO TAG(ID, NAME)
VALUES('TAG_07', 'Thể thao');
SELECT POST.*, STATEHISTORY.STATE AS 'STATE' FROM POST INNER JOIN STATEHISTORY
ON POST.ID = STATEHISTORY.POSTID
ORDER BY STATEHISTORY.AT DESC
LIMIT 1;
SELECT * FROM POST;
SET SQL_SAFE_UPDATES = 0;
-- Admin account
-- username: tdblog_admin
-- password: tdblog_admin
INSERT INTO USER(ID, NAME, USERNAME, PASSWORD, AVATAR, REGISTEREDAT, ROLEID)
VALUES('U_01', 'Le Quoc Ron', 'tdblog_admin', 'c53000668f9643f31fce6339834a5625', '/public/uploads/avatar_1.png','2022-11-27 11:15:00', 'ROLE_01');
SELECT STATEHISTORY.STATE, DATE(STATEHISTORY.AT) AS 'AT', COUNT(STATEHISTORY.POSTID) AS 'COUNT' FROM STATEHISTORY INNER JOIN
(
SELECT POST.ID, MAX(STATEHISTORY.AT) AS 'LASTED' FROM STATEHISTORY
INNER JOIN POST
ON STATEHISTORY.POSTID = POST.ID
GROUP BY POST.ID, DATE(STATEHISTORY.AT)
) AS A
ON A.ID = STATEHISTORY.POSTID
WHERE STATEHISTORY.AT = A.LASTED AND DATE(STATEHISTORY.AT) BETWEEN '2022-08-08' AND '2022-11-29'
GROUP BY DATE(STATEHISTORY.AT), STATEHISTORY.STATE
ORDER BY STATEHISTORY.AT;