-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase.sql
More file actions
141 lines (128 loc) · 6.93 KB
/
Copy pathdatabase.sql
File metadata and controls
141 lines (128 loc) · 6.93 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
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
-- 0. 외래키 제약 무시
SET FOREIGN_KEY_CHECKS = 0;
-- 1. DB 생성
CREATE DATABASE IF NOT EXISTS switch CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. root 계정 패스워드 확인/설정
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
-- 3. 권한 부여
GRANT ALL PRIVILEGES ON switch.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
-- 4. 사용할 DB 선택
USE switch;
-- 5. 기존 테이블 삭제 (순서 상관 없이 외래키 무시)
DROP TABLE IF EXISTS chat_message;
DROP TABLE IF EXISTS chat_room;
DROP TABLE IF EXISTS property_location;
DROP TABLE IF EXISTS property_lease_costs;
DROP TABLE IF EXISTS property;
DROP TABLE IF EXISTS grants;
DROP TABLE IF EXISTS users;
-- ==============================
-- USERS 테이블
-- ==============================
CREATE TABLE users (
user_id BIGINT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100) NOT NULL UNIQUE,
name VARCHAR(10) NOT NULL,
contact VARCHAR(20) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ==============================
-- GRANTS 테이블
-- ==============================
CREATE TABLE grants (
service_id BIGINT NOT NULL AUTO_INCREMENT,
service_name VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL,
industry VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
location VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
service_status VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
selection_criteria TEXT COLLATE utf8mb4_unicode_ci,
required_documents TEXT COLLATE utf8mb4_unicode_ci,
service_contents TEXT COLLATE utf8mb4_unicode_ci,
service_type VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
service_link VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (service_id)
) ENGINE=InnoDB AUTO_INCREMENT=268 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ==============================
-- PROPERTY 테이블
-- ==============================
CREATE TABLE property (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id Long NOT NULL,
store_name VARCHAR(255) NOT NULL,
industry VARCHAR(100) NOT NULL,
shop_type VARCHAR(100) NOT NULL,
transfer_type VARCHAR(100) NOT NULL,
transfer_date DATE NULL,
current_floor INT NOT NULL,
total_floor INT NOT NULL,
parking_type VARCHAR(100) NOT NULL,
parking_count INT NOT NULL,
parking_paid BOOLEAN NOT NULL,
restroom VARCHAR(100) NOT NULL,
delivery_level VARCHAR(100) NOT NULL,
takeout_level VARCHAR(100) NOT NULL,
supply_area DECIMAL(10,2) NOT NULL,
exclusive_area DECIMAL(10,2) NOT NULL,
description TEXT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ==============================
-- PROPERTY_LEASE_COSTS 테이블
-- ==============================
CREATE TABLE property_lease_costs (
property_id BIGINT UNSIGNED NOT NULL,
transaction_type VARCHAR(50) NOT NULL,
mgmt_fee INT NOT NULL,
premium INT NOT NULL,
rent INT NULL,
deposit INT NULL,
sale_price INT NULL,
PRIMARY KEY (property_id),
CONSTRAINT fk_property_lease_costs_property
FOREIGN KEY (property_id) REFERENCES property(id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ==============================
-- PROPERTY_LOCATION 테이블
-- ==============================
CREATE TABLE property_location (
property_id BIGINT UNSIGNED NOT NULL,
address TEXT NOT NULL,
lat DECIMAL(10,7) NOT NULL,
lng DECIMAL(10,7) NOT NULL,
PRIMARY KEY (property_id),
CONSTRAINT fk_property_location_property
FOREIGN KEY (property_id) REFERENCES property(id)
ON DELETE CASCADE,
CONSTRAINT chk_lat_range CHECK (lat BETWEEN -90 AND 90),
CONSTRAINT chk_lng_range CHECK (lng BETWEEN -180 AND 180)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- ==============================
-- CHAT_ROOM 테이블
-- ==============================
CREATE TABLE chat_room (
room_id BIGINT AUTO_INCREMENT PRIMARY KEY,
buyer_id BIGINT NOT NULL,
seller_id BIGINT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_chatroom_buyer FOREIGN KEY (buyer_id) REFERENCES users(user_id) ON DELETE CASCADE,
CONSTRAINT fk_chatroom_seller FOREIGN KEY (seller_id) REFERENCES users(user_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ==============================
-- CHAT_MESSAGE 테이블
-- ==============================
CREATE TABLE chat_message (
chat_message_id BIGINT AUTO_INCREMENT PRIMARY KEY,
room_id BIGINT NOT NULL,
sender_id BIGINT NOT NULL,
content TEXT NOT NULL,
sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_message_room FOREIGN KEY (room_id) REFERENCES chat_room(room_id) ON DELETE CASCADE,
CONSTRAINT fk_message_sender FOREIGN KEY (sender_id) REFERENCES users(user_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 9. 외래키 제약 다시 활성화
SET FOREIGN_KEY_CHECKS = 1;