-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDDL.sql
294 lines (250 loc) · 5.78 KB
/
DDL.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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
create table user (
id varchar(100) NOT NULL,
password varchar(100) NOT NULL,
name varchar(100) NOT NULL,
email varchar(100) NOT NULL,
phone_number varchar(100) NOT NULL,
address varchar(200) NOT NULL
);
CREATE TABLE payment (
reservation_idx int auto_increment primary key NOT NULL,
hospital_idx int NOT NULL,
user_id varchar(100) NOT NULL,
payment_amount int NOT NULL,
payment_date datetime NOT NULL,
payment_method varchar(100) NOT NULL,
payment_status varchar(100) NOT NULL,
update_at timestamp NOT NULL
);
CREATE TABLE manager (
id varchar(100) NOT NULL,
name varchar(50) NOT NULL,
password varchar(100) NOT NULL,
email varchar(100) NOT NULL,
phone_number varchar(100) NOT NULL,
business_number varchar(100) NOT NULL
);
CREATE TABLE doctorInfo (
hospital_idx int NOT NULL,
name varchar(100) NOT NULL,
detail varchar(500) NOT NULL
);
CREATE TABLE department (
department int NOT NULL,
hospital_idx int NOT NULL
);
create table review (
user_id varchar(100) NOT NULL,
hospital_idx int NOT NULL,
title varchar(200) NOT NULL,
contents varchar(1000) NOT NULL,
created_at timestamp NOT NULL,
rating float NOT NULL,
password varchar(100) NOT NULL DEFAULT 0000,
released boolean NOT NULL
);
CREATE TABLE hospital (
idx int auto_increment primary key NOT NULL,
manager_id varchar(100) NOT NULL,
name varchar (100) NOT NULL,
address varchar(200) NOT NULL,
number varchar(100) NOT NULL,
type varchar(100) NULL
);
CREATE TABLE reservation (
idx int auto_increment primary key NOT NULL,
hospital_idx int NOT NULL,
user_id varchar(100) NOT NULL,
visit_user varchar(100) NOT NULL,
phone_number varchar(100) NOT NULL,
content varchar(500) NOT NULL,
admit boolean NOT NULL,
reservation_date timestamp NOT NULL
);
CREATE TABLE monday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE tuesday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE wendsday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE thursday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE friday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE saturday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE sunday (
open boolean NOT NULL,
open_time time NULL,
close_time time NULL,
hospital_idx int NOT NULL
);
CREATE TABLE announcement (
hospital_idx int NOT NULL,
title varchar(200) NOT NULL,
contents varchar(2000) NOT NULL,
created_at timestamp NOT NULL
);
ALTER TABLE user ADD CONSTRAINT PK_USER PRIMARY KEY (
id
);
ALTER TABLE payment ADD CONSTRAINT PK_PAYMENT PRIMARY KEY (
reservation_idx,
hospital_idx,
user_id
);
ALTER TABLE manager ADD CONSTRAINT PK_MANAGER PRIMARY KEY (
id
);
ALTER TABLE doctorInfo ADD CONSTRAINT PK_DOCTORINFO PRIMARY KEY (
hospital_idx
);
ALTER TABLE review ADD CONSTRAINT PK_REVIEW PRIMARY KEY (
user_id,
hospital_idx
);
ALTER TABLE hospital ADD CONSTRAINT PK_HOSPITAL PRIMARY KEY (
idx,
manager_id
);
ALTER TABLE reservation ADD CONSTRAINT PK_RESERVATION PRIMARY KEY (
idx,
hospital_idx,
user_id
);
ALTER TABLE announcement ADD CONSTRAINT PK_ANNOUNCEMENT PRIMARY KEY (
hospital_idx
);
ALTER TABLE payment ADD CONSTRAINT FK_reservation_TO_payment_1 FOREIGN KEY (
reservation_idx
)
REFERENCES reservation (
idx
)ON DELETE CASCADE;
ALTER TABLE payment ADD CONSTRAINT FK_reservation_TO_payment_2 FOREIGN KEY (
hospital_idx
)
REFERENCES reservation (
hospital_idx
) ON DELETE CASCADE;
ALTER TABLE payment ADD CONSTRAINT FK_reservation_TO_payment_3 FOREIGN KEY (
user_id
)
REFERENCES reservation (
user_id
)ON DELETE CASCADE;
ALTER TABLE payment DROP CONSTRAINT FK_reservation_TO_payment_3;
ALTER TABLE doctorInfo ADD CONSTRAINT FK_hospital_TO_doctorInfo_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
)ON DELETE CASCADE;
ALTER TABLE department ADD CONSTRAINT FK_hospital_TO_department_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
)ON DELETE CASCADE;
ALTER TABLE review ADD CONSTRAINT FK_user_TO_review_1 FOREIGN KEY (
user_id
)
REFERENCES user (
id
)ON DELETE CASCADE;
ALTER TABLE review ADD CONSTRAINT FK_hospital_TO_review_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
)ON DELETE CASCADE;
ALTER TABLE hospital ADD CONSTRAINT FK_manager_TO_hospital_1 FOREIGN KEY (
manager_id
)
REFERENCES manager (
id
)ON DELETE CASCADE;
ALTER TABLE reservation ADD CONSTRAINT FK_hospital_TO_reservation_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
)ON DELETE CASCADE;
ALTER TABLE reservation ADD CONSTRAINT FK_user_TO_reservation_1 FOREIGN KEY (
user_id
)
REFERENCES user (
id
)ON DELETE CASCADE;
ALTER TABLE monday ADD CONSTRAINT FK_hospital_TO_monday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
)ON DELETE CASCADE;
ALTER TABLE tuesday ADD CONSTRAINT FK_hospital_TO_tuesday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE wendsday ADD CONSTRAINT FK_hospital_TO_wendsday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE thursday ADD CONSTRAINT FK_hospital_TO_thursday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE friday ADD CONSTRAINT FK_hospital_TO_friday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE saturday ADD CONSTRAINT FK_hospital_TO_saturday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE sunday ADD CONSTRAINT FK_hospital_TO_sunday_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);
ALTER TABLE announcement ADD CONSTRAINT FK_hospital_TO_announcement_1 FOREIGN KEY (
hospital_idx
)
REFERENCES hospital (
idx
);