forked from AcaMate/AcaMate_DB
[✨] 각종 SQL 문 추가
This commit is contained in:
parent
66d9195fd7
commit
53d81dac48
|
@ -1,6 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="SqlDialectMappings">
|
<component name="SqlDialectMappings">
|
||||||
|
<file url="file://$PROJECT_DIR$/scripts/AddIndex.sql" dialect="MariaDB" />
|
||||||
|
<file url="file://$PROJECT_DIR$/scripts/Chat.sql" dialect="MariaDB" />
|
||||||
|
<file url="file://$PROJECT_DIR$/scripts/Push.sql" dialect="MariaDB" />
|
||||||
<file url="file://$PROJECT_DIR$/scripts/Token.sql" dialect="MariaDB" />
|
<file url="file://$PROJECT_DIR$/scripts/Token.sql" dialect="MariaDB" />
|
||||||
|
<file url="file://$PROJECT_DIR$/scripts/User.sql" dialect="MariaDB" />
|
||||||
|
<file url="file://$PROJECT_DIR$/scripts/log.sql" dialect="MariaDB" />
|
||||||
|
<file url="PROJECT" dialect="MariaDB" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
91
scripts/AddIndex.sql
Normal file
91
scripts/AddIndex.sql
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
create table academy
|
||||||
|
(
|
||||||
|
bid char(6) not null
|
||||||
|
primary key,
|
||||||
|
business_name varchar(100) not null,
|
||||||
|
business_owner varchar(50) not null,
|
||||||
|
business_number varchar(20) not null,
|
||||||
|
business_date datetime not null,
|
||||||
|
business_address varchar(200) not null,
|
||||||
|
business_contact varchar(15) not null,
|
||||||
|
uid varchar(70) not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table payload
|
||||||
|
(
|
||||||
|
pid char(22) not null
|
||||||
|
primary key,
|
||||||
|
title varchar(100) not null,
|
||||||
|
subtitle varchar(100) null,
|
||||||
|
body varchar(255) not null,
|
||||||
|
alert_yn tinyint(1) default 1 not null,
|
||||||
|
category char(4) not null,
|
||||||
|
content text null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table push_cabinet
|
||||||
|
(
|
||||||
|
uid varchar(70) not null,
|
||||||
|
pid char(22) not null,
|
||||||
|
send_date datetime not null,
|
||||||
|
check_yn tinyint(1) default 0 not null,
|
||||||
|
primary key (uid, pid),
|
||||||
|
constraint fk_pushcabinet_pid_to_payload
|
||||||
|
foreign key (pid) references payload (pid)
|
||||||
|
on update cascade on delete cascade,
|
||||||
|
constraint fk_pushcabinet_uid_to_user
|
||||||
|
foreign key (uid) references user (uid)
|
||||||
|
on update cascade on delete cascade
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE payload
|
||||||
|
ADD COLUMN bid CHAR(6) NOT NULL DEFAULT '000000' AFTER pid
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE payload
|
||||||
|
DROP PRIMARY KEY ,
|
||||||
|
ADD PRIMARY KEY (bid, pid)
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE payload
|
||||||
|
ADD CONSTRAINT fk_payload_bid_to_academy
|
||||||
|
FOREIGN KEY (bid) REFERENCES academy(bid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
# //------//
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD COLUMN bid CHAR(6) NOT NULL DEFAULT 'AA0000' AFTER uid
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
DROP PRIMARY KEY,
|
||||||
|
ADD PRIMARY KEY (bid, uid, pid)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
DROP FOREIGN KEY fk_pushcabinet_pid_to_payload
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
DROP FOREIGN KEY fk_pushcabinet_uid_to_user
|
||||||
|
;
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD CONSTRAINT fk_pushcabinet_payload
|
||||||
|
FOREIGN KEY (bid, pid) REFERENCES payload(bid, pid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD CONSTRAINT fk_pushcabinet_bid_to_academy
|
||||||
|
FOREIGN KEY (bid) REFERENCES academy(bid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
56
scripts/Chat.sql
Normal file
56
scripts/Chat.sql
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
CREATE TABLE chat_room
|
||||||
|
(
|
||||||
|
cid CHAR(16) NOT NULL PRIMARY KEY, -- 채팅방 구분 코드: 6(bid) + 6(yyyyMMdd) + 4(숫자 카운트)
|
||||||
|
bid CHAR(6) NOT NULL, -- 학원 구분 코드
|
||||||
|
name TEXT NOT NULL, -- 채팅방 이름
|
||||||
|
type CHAR(4) NOT NULL, -- 채팅방 유형 (1:1, 그룹 등)
|
||||||
|
create_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 생성 일자
|
||||||
|
open_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- 오픈 일자
|
||||||
|
close_date DATETIME, -- 중지 일자 (채팅방 종료 처리)
|
||||||
|
FOREIGN KEY (bid) REFERENCES academy (bid) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE chat_join
|
||||||
|
(
|
||||||
|
cid CHAR(16) NOT NULL, -- 채팅방 구분 코드
|
||||||
|
uid VARCHAR(70) NOT NULL, -- 사용자 구분 코드
|
||||||
|
join_date DATETIME NOT NULL, -- 채팅방 입장 시간
|
||||||
|
mid CHAR(36), -- 마지막 확인한 메시지 ID
|
||||||
|
is_notice BOOLEAN DEFAULT TRUE, -- 알림 설정 여부
|
||||||
|
PRIMARY KEY (cid, uid),
|
||||||
|
FOREIGN KEY (cid) REFERENCES chat_room (cid) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (uid) REFERENCES user (uid) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (mid) REFERENCES chat_message (mid) ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE chat_message
|
||||||
|
(
|
||||||
|
mid CHAR(36) NOT NULL PRIMARY KEY, -- 메시지 구분 코드(UUID)
|
||||||
|
cid CHAR(16) NOT NULL, -- 채팅방 구분 코드
|
||||||
|
uid VARCHAR(70) NOT NULL, -- 사용자 구분 코드
|
||||||
|
create_date DATETIME NOT NULL, -- 메시지 작성 일자
|
||||||
|
content TEXT NOT NULL, -- 메시지 내용
|
||||||
|
is_hidden BOOLEAN NOT NULL DEFAULT FALSE, -- 가리기 여부
|
||||||
|
media_url TEXT, -- 첨부 파일 링크
|
||||||
|
read_count INT NOT NULL DEFAULT 0, -- 읽은 사람 수
|
||||||
|
blind BOOLEAN NOT NULL DEFAULT FALSE, -- 신고로 인해 블라인드 처리 여부
|
||||||
|
check_report BOOLEAN NOT NULL DEFAULT FALSE, -- 신고 검토 여부
|
||||||
|
FOREIGN KEY (cid) REFERENCES chat_room (cid) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (uid) REFERENCES user (uid) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX idx_chat_message_cid ON chat_message(cid);
|
||||||
|
CREATE INDEX idx_chat_message_cid_create_date ON chat_message(cid, create_date);
|
||||||
|
CREATE INDEX idx_chat_message_uid_cid ON chat_message(uid, cid);
|
||||||
|
|
||||||
|
CREATE TABLE report_list
|
||||||
|
(
|
||||||
|
cid CHAR(16) NOT NULL, -- 채팅방 구분 코드
|
||||||
|
uid VARCHAR(70) NOT NULL, -- 신고자 사용자 코드
|
||||||
|
mid CHAR(36) NOT NULL, -- 신고된 메시지 ID
|
||||||
|
report TEXT, -- 신고 사유
|
||||||
|
PRIMARY KEY (cid, uid, mid),
|
||||||
|
FOREIGN KEY (cid) REFERENCES chat_room (cid) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (uid) REFERENCES user (uid) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
FOREIGN KEY (mid) REFERENCES chat_message (mid) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
117
scripts/Push.sql
Normal file
117
scripts/Push.sql
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
CREATE TABLE payload (
|
||||||
|
pid CHAR(22) NOT NULL PRIMARY KEY ,
|
||||||
|
title VARCHAR(100) NOT NULL ,
|
||||||
|
subtitle VARCHAR(100) ,
|
||||||
|
body VARCHAR(255) NOT NULL ,
|
||||||
|
alert_yn BOOLEAN NOT NULL DEFAULT TRUE,
|
||||||
|
category CHAR(4) NOT NULL ,
|
||||||
|
content TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE push_cabinet (
|
||||||
|
uid CHAR(6) NOT NULL ,
|
||||||
|
pid CHAR(22) NOT NULL ,
|
||||||
|
send_date DATETIME NOT NULL ,
|
||||||
|
check_yn BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
PRIMARY KEY (uid, pid),
|
||||||
|
CONSTRAINT fk_pushcabinet_uid_to_user FOREIGN KEY (uid)
|
||||||
|
REFERENCES user(uid)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_pushcabinet_pid_to_payload FOREIGN KEY (pid)
|
||||||
|
REFERENCES payload(pid)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO payload(pid, title, subtitle, body, category, content)
|
||||||
|
VALUES (
|
||||||
|
'AP202503054Q81114002W7',
|
||||||
|
'PUSH 확인 TEST',
|
||||||
|
'PUSH 확인 TEST - SUB',
|
||||||
|
'PUSH를 테스트하기 위해서 작성된 내용입니다. TEST 메시지입나다.',
|
||||||
|
'PC00',
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO payload(pid, title, subtitle, body, category, content)
|
||||||
|
VALUES (
|
||||||
|
'AP202503051S41516009J9',
|
||||||
|
'PUSH 확인 TEST2',
|
||||||
|
NULL,
|
||||||
|
'PUSH를 테스트하기 위해서 작성된 두번째 내용입니다. 두번째 TEST 메시지입나다.',
|
||||||
|
'PC00',
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet DROP FOREIGN KEY fk_pushcabinet_uid_to_user;
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD CONSTRAINT fk_pushcabinet_uid_to_user
|
||||||
|
FOREIGN KEY (uid) REFERENCES user(uid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE log_push (
|
||||||
|
bid CHAR(6) NOT NULL ,
|
||||||
|
pid CHAR(22) NOT NULL ,
|
||||||
|
create_date DATETIME NOT NULL ,
|
||||||
|
modify_date DATETIME NOT NULL ,
|
||||||
|
create_uid VARCHAR(70) NOT NULL ,
|
||||||
|
modify_uid VARCHAR(70) NOT NULL ,
|
||||||
|
PRIMARY KEY (bid, pid),
|
||||||
|
CONSTRAINT fk_logpush_to_payload FOREIGN KEY (bid, pid)
|
||||||
|
REFERENCES payload(bid, pid)
|
||||||
|
ON UPDATE CASCADE
|
||||||
|
ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SELECT cabinet.uid, cabinet.pid, cabinet.send_date, payload.title
|
||||||
|
FROM
|
||||||
|
(select push_cabinet.pid, push_cabinet.uid, push_cabinet.send_date FROM push_cabinet where uid = 'AMsean.kim20241201') As cabinet
|
||||||
|
inner JOIN
|
||||||
|
(select payload.title, payload.pid FROM payload) as payload
|
||||||
|
on cabinet.pid = payload.pid
|
||||||
|
order by send_date
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE push_cabinet
|
||||||
|
(
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY, -- 대리 키로 추가
|
||||||
|
uid VARCHAR(70) NOT NULL,
|
||||||
|
bid CHAR(6) DEFAULT 'AA0000' NOT NULL,
|
||||||
|
pid CHAR(22) NOT NULL,
|
||||||
|
send_date DATETIME NOT NULL,
|
||||||
|
check_yn TINYINT(1) DEFAULT 0 NOT NULL,
|
||||||
|
content TEXT, -- 커스텀 이벤트 내용 저장 (필요 시 TEXT나 VARCHAR로 조정)
|
||||||
|
|
||||||
|
CONSTRAINT fk_pushcabinet_bid_to_academy
|
||||||
|
FOREIGN KEY (bid) REFERENCES academy (bid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_pushcabinet_payload
|
||||||
|
FOREIGN KEY (bid, pid) REFERENCES payload (bid, pid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 조회 성능 향상을 위해 pid 컬럼에 대한 인덱스 추가 (필요 시 uid, send_date 등의 인덱스도 고려)
|
||||||
|
CREATE INDEX idx_pushcabinet_pid ON push_cabinet (pid);
|
||||||
|
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD CONSTRAINT fk_pushcabinet_bid_to_academy
|
||||||
|
FOREIGN KEY (bid) REFERENCES academy (bid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE;
|
||||||
|
ALTER TABLE push_cabinet
|
||||||
|
ADD CONSTRAINT fk_pushcabinet_payload
|
||||||
|
FOREIGN KEY (bid, pid) REFERENCES payload (bid, pid)
|
||||||
|
ON UPDATE CASCADE ON DELETE CASCADE;
|
|
@ -6,4 +6,5 @@ CREATE TABLE token (
|
||||||
expire_date datetime not null ,
|
expire_date datetime not null ,
|
||||||
revoke_date datetime,
|
revoke_date datetime,
|
||||||
constraint fk_token_uid_to_user foreign key (uid) references user (uid) on update cascade on delete cascade
|
constraint fk_token_uid_to_user foreign key (uid) references user (uid) on update cascade on delete cascade
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
18
scripts/User.sql
Normal file
18
scripts/User.sql
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
CREATE TABLE api_header (
|
||||||
|
specific_id VARCHAR(255) PRIMARY KEY NOT NULL ,
|
||||||
|
connect_date DATETIME NOT NULL ,
|
||||||
|
h_key CHAR(18) NOT NULL,
|
||||||
|
h_value TEXT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
# INSERT INTO api_header(specific_id, connect_date, h_key, h_value)
|
||||||
|
# VALUES (2025-03-19,'iOS_AM_Connect_Key','');
|
||||||
|
|
||||||
|
# INSERT INTO api_header(h_key, h_value)
|
||||||
|
# VALUES ('And_AM_Connect_Key','');
|
||||||
|
#
|
||||||
|
# INSERT INTO api_header(h_key, h_value)
|
||||||
|
# VALUES ('Web_AM_Connect_Key','');
|
||||||
|
|
||||||
|
|
||||||
|
SHOW TABLE STATUS WHERE Name = 'permission';
|
38
scripts/log.sql
Normal file
38
scripts/log.sql
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
create table log_push
|
||||||
|
(
|
||||||
|
bid char(6) not null,
|
||||||
|
pid char(22) not null,
|
||||||
|
create_date datetime not null,
|
||||||
|
create_uid varchar(70) not null,
|
||||||
|
log text null,
|
||||||
|
lid int auto_increment
|
||||||
|
primary key
|
||||||
|
);
|
||||||
|
|
||||||
|
create table log_user
|
||||||
|
(
|
||||||
|
bid char(6) not null,
|
||||||
|
pid char(22) not null,
|
||||||
|
create_date datetime not null,
|
||||||
|
create_uid varchar(70) not null,
|
||||||
|
log text null,
|
||||||
|
lid int auto_increment
|
||||||
|
primary key
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
create table log_project
|
||||||
|
(
|
||||||
|
lid int auto_increment primary key,
|
||||||
|
create_date datetime not null default NOW(),
|
||||||
|
log text null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table log_chat
|
||||||
|
(
|
||||||
|
lid int auto_increment primary key,
|
||||||
|
create_date datetime not null,
|
||||||
|
create_uid varchar(70) not null,
|
||||||
|
cid CHAR(16) NOT NULL,
|
||||||
|
log text null
|
||||||
|
);
|
Loading…
Reference in New Issue
Block a user