-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathDB_SQL.sql
205 lines (164 loc) · 5.53 KB
/
DB_SQL.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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
--https://stackoverflow.com/questions/695289/cannot-simply-use-postgresql-table-name-relation-does-not-exist
--https://stackoverflow.com/questions/41591386/postgresql-column-does-not-exist-but-it-actually-does?rq=1
-- DROP TABLE IF EXISTS board CASCADE;
CREATE TABLE board
(
board_id SERIAL,
clan_id INTEGER NULL
);
ALTER TABLE board
ADD PRIMARY KEY (board_id);
-- DROP TABLE IF EXISTS clan CASCADE;
CREATE TABLE clan
(
clan_id SERIAL,
name VARCHAR(64) NOT NULL,
leader_id INTEGER NOT NULL
);
ALTER TABLE clan
ADD PRIMARY KEY (clan_id);
-- DROP TABLE IF EXISTS comment CASCADE;
CREATE TABLE comment
(
comment_id SERIAL,
content VARCHAR(256) NOT NULL,
create_datetime TIMESTAMP NOT NULL,
service_user_id INTEGER NOT NULL,
post_id INTEGER NOT NULL
);
ALTER TABLE comment
ADD PRIMARY KEY (comment_id);
-- DROP TABLE IF EXISTS game CASCADE;
CREATE TABLE game
(
game_id SERIAL,
name VARCHAR(128) NOT NULL
);
ALTER TABLE game
ADD PRIMARY KEY (game_id);
-- DROP TABLE IF EXISTS game_tag CASCADE;
CREATE TABLE game_tag
(
game_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL
);
ALTER TABLE game_tag
ADD PRIMARY KEY (game_id,tag_id);
-- DROP TABLE IF EXISTS game_review CASCADE;
CREATE TABLE game_review
(
review_id INTEGER NOT NULL,
game_id INTEGER NOT NULL
);
ALTER TABLE game_review
ADD PRIMARY KEY (review_id);
-- DROP TABLE IF EXISTS party CASCADE;
CREATE TABLE party
(
party_id SERIAL,
name VARCHAR(64) NOT NULL,
playstart_datetime TIMESTAMP NOT NULL,
leader_id INTEGER NOT NULL,
joinLink VARCHAR(512) NOT NULL,
game_id INTEGER NOT NULL
);
ALTER TABLE party
ADD PRIMARY KEY (party_id);
-- DROP TABLE IF EXISTS post CASCADE;
CREATE TABLE post
(
post_id SERIAL,
title VARCHAR(128) NOT NULL,
content TEXT NOT NULL,
create_datetime TIMESTAMP NOT NULL,
isNotice BOOLEAN NOT NULL DEFAULT false,
thumbsUp INTEGER NOT NULL DEFAULT 0,
thumbsDown INTEGER NOT NULL DEFAULT 0,
viewCount INTEGER NOT NULL DEFAULT 0,
service_user_id INTEGER NOT NULL,
board_id INTEGER NULL
);
ALTER TABLE post
ADD PRIMARY KEY (post_id);
-- DROP TABLE IF EXISTS review CASCADE;
CREATE TABLE review
(
review_id SERIAL,
service_user_id INTEGER,
create_datetime TIMESTAMP NOT NULL,
content VARCHAR(512) NULL,
score INTEGER NOT NULL
);
ALTER TABLE review
ADD PRIMARY KEY (review_id);
-- DROP TABLE IF EXISTS tag CASCADE;
CREATE TABLE tag
(
tag_id SERIAL,
name VARCHAR(64) NOT NULL
);
ALTER TABLE tag
ADD PRIMARY KEY (tag_id);
-- DROP TABLE IF EXISTS service_user CASCADE;
CREATE TABLE service_user
(
service_user_id SERIAL,
email VARCHAR(128) UNIQUE NOT NULL,
encrypted_password VARCHAR(256) NOT NULL,
salt VARCHAR(256) NOT NULL,
nickname VARCHAR(64) UNIQUE NOT NULL,
isAdmin BOOLEAN NOT NULL DEFAULT false,
clan_id INTEGER NULL
);
ALTER TABLE service_user
ADD PRIMARY KEY (service_user_id);
-- DROP TABLE IF EXISTS service_user_party CASCADE;
CREATE TABLE service_user_party
(
service_user_id INTEGER NOT NULL,
party_id INTEGER NOT NULL
);
ALTER TABLE service_user_party
ADD PRIMARY KEY (service_user_id,party_id);
-- DROP TABLE IF EXISTS service_user_review CASCADE;
CREATE TABLE service_user_review
(
review_id INTEGER NOT NULL,
service_user_id INTEGER NOT NULL
);
ALTER TABLE service_user_review
ADD PRIMARY KEY (review_id);
ALTER TABLE board
ADD CONSTRAINT clan_board FOREIGN KEY (clan_id) REFERENCES clan (clan_id);
ALTER TABLE comment
ADD CONSTRAINT service_user_comment FOREIGN KEY (service_user_id) REFERENCES service_user (service_user_id);
ALTER TABLE comment
ADD CONSTRAINT post_comment FOREIGN KEY (post_id) REFERENCES post (post_id);
ALTER TABLE game_tag
ADD CONSTRAINT R_19 FOREIGN KEY (game_id) REFERENCES game (game_id);
ALTER TABLE game_tag
ADD CONSTRAINT R_20 FOREIGN KEY (tag_id) REFERENCES tag (tag_id);
ALTER TABLE game_review
ADD CONSTRAINT review_game_review FOREIGN KEY (review_id) REFERENCES review (review_id)
ON DELETE CASCADE;
ALTER TABLE game_review
ADD CONSTRAINT game_game_review FOREIGN KEY (game_id) REFERENCES game (game_id);
ALTER TABLE party
ADD CONSTRAINT game_party FOREIGN KEY (game_id) REFERENCES game (game_id);
ALTER TABLE post
ADD CONSTRAINT service_user_post FOREIGN KEY (service_user_id) REFERENCES service_user (service_user_id);
ALTER TABLE post
ADD CONSTRAINT board_post FOREIGN KEY (board_id) REFERENCES board (board_id);
ALTER TABLE review
ADD CONSTRAINT review_service_user FOREIGN KEY (service_user_id) REFERENCES service_user (service_user_id);
ALTER TABLE service_user
ADD CONSTRAINT clan_User FOREIGN KEY (clan_id) REFERENCES clan (clan_id);
ALTER TABLE service_user_party
ADD CONSTRAINT R_22 FOREIGN KEY (service_user_id) REFERENCES service_user (service_user_id);
ALTER TABLE service_user_party
ADD CONSTRAINT R_23 FOREIGN KEY (party_id) REFERENCES party (party_id);
ALTER TABLE service_user_review
ADD CONSTRAINT review_User_review FOREIGN KEY (review_id) REFERENCES review (review_id)
ON DELETE CASCADE;
ALTER TABLE service_user_review
ADD CONSTRAINT service_user_User_review FOREIGN KEY (service_user_id) REFERENCES service_user (service_user_id);