1
+ CREATE TABLE api_log (
2
+ api_log_id BIGINT AUTO_INCREMENT PRIMARY KEY ,
3
+ request_url VARCHAR (255 ),
4
+ request_method VARCHAR (10 ),
5
+ user_id VARCHAR (255 ),
6
+ client_ip VARCHAR (50 ),
7
+ response_status INT ,
8
+ taken_time BIGINT ,
9
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
10
+ );
11
+
12
+ CREATE TABLE user (
13
+ user_id BIGINT AUTO_INCREMENT PRIMARY KEY ,
14
+ email VARCHAR (255 ) UNIQUE NOT NULL ,
15
+ password VARCHAR (255 ),
16
+ image_url VARCHAR (255 ),
17
+ name VARCHAR (30 ),
18
+ spare_time INT ,
19
+ note TEXT ,
20
+ punctuality_score FLOAT,
21
+ schedule_count_after_reset INT ,
22
+ lateness_count_after_reset INT ,
23
+ role VARCHAR (20 ) NOT NULL ,
24
+ social_type VARCHAR (20 ),
25
+ social_id VARCHAR (255 ) UNIQUE,
26
+ refresh_token TEXT ,
27
+ firebase_token TEXT ,
28
+ social_login_token TEXT
29
+ );
30
+
31
+ CREATE TABLE place (
32
+ place_id BINARY(36 ) PRIMARY KEY ,
33
+ place_name VARCHAR (255 ) NOT NULL
34
+ );
35
+
36
+ CREATE TABLE schedule (
37
+ schedule_id BINARY(36 ) PRIMARY KEY ,
38
+ user_id BIGINT NOT NULL ,
39
+ place_id BINARY(36 ),
40
+ schedule_name VARCHAR (30 ) NOT NULL ,
41
+ move_time INT ,
42
+ schedule_time TIMESTAMP ,
43
+ is_change TINYINT (1 ),
44
+ is_started TINYINT (1 ),
45
+ schedule_spare_time INT ,
46
+ lateness_time INT ,
47
+ schedule_note TEXT ,
48
+ CONSTRAINT fk_schedule_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE ,
49
+ CONSTRAINT fk_schedule_place FOREIGN KEY (place_id) REFERENCES place (place_id) ON DELETE SET NULL
50
+ );
51
+
52
+ CREATE INDEX idx_schedule_user_id ON schedule(user_id);
53
+ CREATE INDEX idx_schedule_time ON schedule(schedule_time);
54
+
55
+ CREATE TABLE feedback (
56
+ feedback_id BINARY(36 ) PRIMARY KEY ,
57
+ message TEXT NOT NULL ,
58
+ create_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
59
+ user_id BIGINT NOT NULL ,
60
+ CONSTRAINT fk_feedback_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE
61
+ );
62
+
63
+ CREATE TABLE friend_ship (
64
+ friend_ship_id BINARY(36 ) PRIMARY KEY ,
65
+ requester_id BIGINT NOT NULL ,
66
+ receiver_id BIGINT ,
67
+ accept_status VARCHAR (20 ) NOT NULL ,
68
+ CONSTRAINT fk_friendship_requester FOREIGN KEY (requester_id) REFERENCES user (user_id) ON DELETE CASCADE ,
69
+ CONSTRAINT fk_friendship_receiver FOREIGN KEY (receiver_id) REFERENCES user (user_id) ON DELETE CASCADE
70
+ );
71
+
72
+ CREATE TABLE preparation_schedule (
73
+ preparation_schedule_id BINARY(36 ) PRIMARY KEY ,
74
+ schedule_id BINARY(36 ) NOT NULL ,
75
+ preparation_name VARCHAR (30 ) NOT NULL ,
76
+ preparation_time INT ,
77
+ next_preparation_id BINARY(36 ),
78
+ CONSTRAINT fk_preparation_schedule FOREIGN KEY (schedule_id) REFERENCES schedule (schedule_id) ON DELETE CASCADE ,
79
+ CONSTRAINT fk_next_preparation FOREIGN KEY (next_preparation_id) REFERENCES preparation_schedule (preparation_schedule_id)
80
+ );
81
+
82
+ CREATE TABLE preparation_user (
83
+ preparation_id BINARY(36 ) PRIMARY KEY ,
84
+ user_id BIGINT NOT NULL ,
85
+ preparation_name VARCHAR (30 ) NOT NULL ,
86
+ preparation_time INT ,
87
+ next_preparation_id BINARY(36 ),
88
+ CONSTRAINT fk_preparation_user FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE ,
89
+ CONSTRAINT fk_next_preparation_user FOREIGN KEY (next_preparation_id) REFERENCES preparation_user (preparation_id)
90
+ );
91
+
92
+ CREATE TABLE user_setting (
93
+ user_setting_id BINARY(36 ) PRIMARY KEY ,
94
+ user_id BIGINT NOT NULL ,
95
+ is_notifications_enabled TINYINT (1 ) DEFAULT 1 ,
96
+ sound_volume INT DEFAULT 50 ,
97
+ is_play_on_speaker TINYINT (1 ) DEFAULT 1 ,
98
+ is24hour_format TINYINT (1 ) DEFAULT 1 ,
99
+ CONSTRAINT fk_user_setting FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE
100
+ );
0 commit comments