-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb_schema.sql
More file actions
78 lines (71 loc) · 2.06 KB
/
db_schema.sql
File metadata and controls
78 lines (71 loc) · 2.06 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
CREATE DATABASE IF NOT EXISTS team7_db;
use team7_db;
-- USER 테이블
CREATE TABLE USER (
id VARCHAR(255) PRIMARY KEY,
nickname VARCHAR(255),
password VARCHAR(255)
);
-- GROUP 테이블
CREATE TABLE `GROUP` (
id INT PRIMARY KEY AUTO_INCREMENT,
owner VARCHAR(255),
name VARCHAR(255),
imageUrl VARCHAR(255),
introduction TEXT,
postCount INT,
memberCount INT,
badges JSON DEFAULT ('[]'),
FOREIGN KEY (owner) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE
);
-- POST 테이블
CREATE TABLE POST (
id INT PRIMARY KEY AUTO_INCREMENT,
userId VARCHAR(255),
groupId INT,
title VARCHAR(255),
content TEXT,
imageUrl VARCHAR(255),
isPublic BOOLEAN,
location VARCHAR(255),
moment DATETIME,
likeCount INT,
commentCount INT,
createdAt DATETIME,
FOREIGN KEY (userId) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (groupId) REFERENCES `GROUP`(id) ON DELETE CASCADE ON UPDATE CASCADE
);
-- PARTICIPATE 테이블
CREATE TABLE PARTICIPATE (
userId VARCHAR(255),
groupId INT,
PRIMARY KEY (userId, groupId),
FOREIGN KEY (userId) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (groupId) REFERENCES `GROUP`(id) ON DELETE CASCADE ON UPDATE CASCADE
);
-- COMMENT 테이블
CREATE TABLE COMMENT (
id INT PRIMARY KEY AUTO_INCREMENT,
userId VARCHAR(255),
content TEXT,
postId INT,
createdAt DATETIME,
FOREIGN KEY (userId) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (postId) REFERENCES POST(id) ON DELETE CASCADE ON UPDATE CASCADE
);
-- SCRAP 테이블
CREATE TABLE SCRAP (
userId VARCHAR(255),
postId INT,
PRIMARY KEY (userId, postId),
FOREIGN KEY (userId) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (postId) REFERENCES POST(id) ON DELETE CASCADE ON UPDATE CASCADE
);
-- LIKE 테이블
CREATE TABLE `LIKE` (
userId VARCHAR(255),
postId INT,
PRIMARY KEY (userId, postId),
FOREIGN KEY (userId) REFERENCES USER(id) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (postId) REFERENCES POST(id) ON DELETE CASCADE ON UPDATE CASCADE
);