CREATE DATABASE GAPApp;
USE GAPApp;
- 모험섬 정보 테이블
CREATE TABLE ISLAND_SCHEDULE (
SNO INT AUTO_INCREMENT COMMENT '일련번호',
BASE_DATE VARCHAR(8) NOT NULL COMMENT '기준일자',
TIME_TYPE CHAR(1) NOT NULL COMMENT '시간 타입 (AM:0, PM:1)',
NAME VARCHAR(100) COMMENT '모험섬 이름',
START_TIME JSON COMMENT '시작시간',
REWARD_ITEMS JSON COMMENT '보상 아이템',
BONUS_REWARD_TYPE VARCHAR(100) COMMENT '주요 아이템',
IMG_URL VARCHAR(100) COMMENT '이미지 URL',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부',
PRIMARY KEY (SNO, BASE_DATE, TIME_TYPE) -- 다중 컬럼을 기본 키로 선언
) COMMENT '모험섬 정보';
- 로스트아크 공지 테이블
CREATE TABLE LOSTARK_NOTICE (
SNO INT AUTO_INCREMENT PRIMARY KEY COMMENT '일련번호',
TITLE VARCHAR(100) COMMENT '제목',
TYPE VARCHAR(20) COMMENT '타입',
URL VARCHAR(100) COMMENT '공지 URL',
DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '등록 일자'
) COMMENT '로스트아크 공지';
- 로스트아크 이벤트 테이블
CREATE TABLE LOSTARK_EVENT (
SNO INT AUTO_INCREMENT PRIMARY KEY COMMENT '일련번호',
TITLE VARCHAR(100) COMMENT '제목',
URL VARCHAR(100) COMMENT '이벤트 URL',
IMG_URL VARCHAR(100) COMMENT '이미지 URL',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자'
) COMMENT '로스트아크 이벤트';
- 빈틈봇 패치노트
CREATE TABLE GAP_PATCHNOTE (
SNO INT AUTO_INCREMENT PRIMARY KEY COMMENT '일련번호',
TITLE VARCHAR(100) NOT NULL COMMENT '제목',
CONTENTS VARCHAR(4000) COMMENT '내용',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부'
)COMMENT = '빈틈봇 패치노트';
- 유저 정보
CREATE TABLE USER_INFO (
USERNAME VARCHAR(255) PRIMARY KEY COMMENT '사용자명',
PASSWORD VARCHAR(1000) NOT NULL COMMENT '패스워드',
NICKNAME VARCHAR(50) DEFAULT NULL COMMENT '캐릭터 대표 닉네임',
ROOM_CODE VARCHAR(255) DEFAULT NULL COMMENT '오픈챗 룸 CODE',
USER_CODE VARCHAR(255) DEFAULT NULL COMMENT '오픈챗 유저 CODE',
LOSTARK_API_KEY VARCHAR(255) DEFAULT NULL COMMENT '로아 API KEY',
EMAIL_VERIFIED CHAR(1) DEFAULT 'N' COMMENT '이메일 인증 여부',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
LST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '최종 수정 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부'
) COMMENT = '유저 정보';
- 레이드 정보
CREATE TABLE RAID_INFO (
SNO INT AUTO_INCREMENT PRIMARY KEY COMMENT '일련번호',
CATEGORY VARCHAR(50) COMMENT '레이드분류',
NAME VARCHAR(50) COMMENT '레이드이름',
DIFFICULTY VARCHAR(50) COMMENT '레이드난이도',
GATE INT COMMENT '레이드관문',
LEVEL_REQUIREMENT INT COMMENT '입장레벨',
GOLD INT COMMENT '클리어골드',
WEEKEND_YN CHAR(1) DEFAULT 'N' COMMENT '격주 여부',
CHECKED CHAR(1) DEFAULT 'N' COMMENT '선택여부',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부'
) COMMENT = '로스트아크 레이드 정보';
INSERT INTO RAID_INFO (CATEGORY, NAME, DIFFICULTY, GATE, LEVEL_REQUIREMENT, GOLD) VALUES
("아르고스", "아르고스","노말",1,1370,1000),
("발탄", "발탄","싱글",1,1415,400),
("발탄", "발탄","싱글",2,1415,560),
("발탄", "발탄","노말",1,1415,500),
("발탄", "발탄","노말",2,1415,700),
("발탄", "발탄","하드",1,1445,700),
("발탄", "발탄","하드",2,1445,1100),
("비아키스", "비아키스", "싱글", 1, 1445, 480),
("비아키스", "비아키스", "싱글", 2, 1445, 800),
("비아키스", "비아키스", "노말", 1, 1430, 600),
("비아키스", "비아키스", "노말", 2, 1430, 1000),
("비아키스", "비아키스", "하드", 1, 1460, 900),
("비아키스", "비아키스", "하드", 2, 1460, 1500),
("쿠크세이튼", "쿠크세이튼", "싱글", 1, 1475, 480),
("쿠크세이튼", "쿠크세이튼", "싱글", 2, 1475, 720),
("쿠크세이튼", "쿠크세이튼", "싱글", 3, 1475, 1200),
("쿠크세이튼", "쿠크세이튼", "노말", 1, 1475, 600),
("쿠크세이튼", "쿠크세이튼", "노말", 2, 1475, 900),
("쿠크세이튼", "쿠크세이튼", "노말", 3, 1475, 1500),
("아브렐슈드", "아브렐슈드", "싱글", 1, 1490, 800),
("아브렐슈드", "아브렐슈드", "싱글", 2, 1490, 800),
("아브렐슈드", "아브렐슈드", "싱글", 3, 1490, 800),
("아브렐슈드", "아브렐슈드", "싱글", 4, 1490, 1280),
("아브렐슈드", "아브렐슈드", "노말", 1, 1490, 1000),
("아브렐슈드", "아브렐슈드", "노말", 2, 1490, 1000),
("아브렐슈드", "아브렐슈드", "노말", 3, 1500, 1000),
("아브렐슈드", "아브렐슈드", "노말", 4, 1520, 1600),
("아브렐슈드", "아브렐슈드", "하드", 1, 1540, 1200),
("아브렐슈드", "아브렐슈드", "하드", 2, 1540, 1200),
("아브렐슈드", "아브렐슈드", "하드", 3, 1550, 1200),
("아브렐슈드", "아브렐슈드", "하드", 4, 1560, 2000),
("카양겔", "카양겔", "싱글", 1, 1540, 640),
("카양겔", "카양겔", "싱글", 2, 1540, 960),
("카양겔", "카양겔", "싱글", 3, 1540, 1280),
("카양겔", "카양겔", "노말", 1, 1540, 800),
("카양겔", "카양겔", "노말", 2, 1540, 1200),
("카양겔", "카양겔", "노말", 3, 1540, 1600),
("카양겔", "카양겔", "하드", 1, 1580, 1000),
("카양겔", "카양겔", "하드", 2, 1580, 1600),
("카양겔", "카양겔", "하드", 3, 1580, 2200),
("일리아칸", "일리아칸", "싱글", 1, 1580, 800),
("일리아칸", "일리아칸", "싱글", 2, 1580, 1440),
("일리아칸", "일리아칸", "싱글", 3, 1580, 2080),
("일리아칸", "일리아칸", "노말", 1, 1580, 1000),
("일리아칸", "일리아칸", "노말", 2, 1580, 1800),
("일리아칸", "일리아칸", "노말", 3, 1580, 2600),
("일리아칸", "일리아칸", "하드", 1, 1600, 1500),
("일리아칸", "일리아칸", "하드", 2, 1600, 2500),
("일리아칸", "일리아칸", "하드", 3, 1600, 3500),
("상아탑", "상아탑", "싱글", 1, 1600, 1200),
("상아탑", "상아탑", "싱글", 2, 1600, 1600),
("상아탑", "상아탑", "싱글", 3, 1600, 2400),
("상아탑", "상아탑", "노말", 1, 1600, 1500),
("상아탑", "상아탑", "노말", 2, 1600, 2000),
("상아탑", "상아탑", "노말", 3, 1600, 3000),
("상아탑", "상아탑", "하드", 1, 1620, 2000),
("상아탑", "상아탑", "하드", 2, 1620, 3000),
("상아탑", "상아탑", "하드", 3, 1620, 5500),
("카멘", "카멘", "싱글", 1, 1610, 2000),
("카멘", "카멘", "싱글", 2, 1610, 2400),
("카멘", "카멘", "싱글", 3, 1610, 3600),
("카멘", "카멘", "노말", 1, 1610, 2500),
("카멘", "카멘", "노말", 2, 1610, 3000),
("카멘", "카멘", "노말", 3, 1610, 4500),
("카멘", "카멘", "하드", 1, 1630, 3500),
("카멘", "카멘", "하드", 2, 1630, 4500),
("카멘", "카멘", "하드", 3, 1630, 7500),
("카멘", "카멘", "하드", 4, 1630, 8000),
("에키드나", "에키드나", "싱글", 1, 1620, 4000),
("에키드나", "에키드나", "싱글", 2, 1620, 7600),
("에키드나", "에키드나", "노말", 1, 1620, 5000),
("에키드나", "에키드나", "노말", 2, 1620, 9500),
("에키드나", "에키드나", "하드", 1, 1640, 6000),
("에키드나", "에키드나", "하드", 2, 1640, 12500),
("베히모스", "베히모스", "노말", 1, 1640, 6000),
("베히모스", "베히모스", "노말", 2, 1640, 12500),
("에기르", "에기르", "노말", 1, 1660, 7500),
("에기르", "에기르", "노말", 2, 1660, 15500),
("에기르", "에기르", "하드", 1, 1680, 9000),
("에기르", "에기르", "하드", 2, 1680, 18500),
("아브렐슈드 2막", "아브렐슈드 2막", "노말", 1, 1670, 8500),
("아브렐슈드 2막", "아브렐슈드 2막", "노말", 2, 1670, 16500),
("아브렐슈드 2막", "아브렐슈드 2막", "하드", 1, 1690, 10000),
("아브렐슈드 2막", "아브렐슈드 2막", "하드", 2, 1690, 20500);
- 큐브정보
CREATE TABLE CUBE_INFO (
SNO INT AUTO_INCREMENT PRIMARY KEY COMMENT '일련번호',
NAME VARCHAR(50) COMMENT '큐브이름',
LEVEL INT COMMENT '입장레벨',
CARD_EXP INT COMMENT '카드경험치',
JEWELRY INT COMMENT '보석_1렙',
JEWELRY_PRICE INT COMMENT '보석가격',
STONES INT COMMENT '돌파석',
SILLING INT COMMENT '실링',
ETC1 INT COMMENT '강화보조재료1',
ETC2 INT COMMENT '강화보조재료2',
ETC3 INT COMMENT '강화보조재료3',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부'
) COMMENT = '로스트아크 큐브 정보';
INSERT INTO CUBE_INFO (NAME, LEVEL, CARD_EXP, JEWELRY, JEWELRY_PRICE, STONES, SILLING, ETC1, ETC2, ETC3)
VALUES
('1금제', 1, 3000, 21.0, 504, 20.0, 79859.0, 6.0, 3.0, 1.0),
('2금제', 2, 9000, 36.0, 864, 14.0, 100142.0, 8.0, 4.0, 2.0),
('3금제', 3, 12000, 54.0, 1296, 25.0, 110370.0, 11.0, 6.0, 2.0),
('4금제', 4, 13000, 72.0,1728, 14.0, 120518.0, 12.0, 7.0, 3.0),
('5금제', 5, 13500, 81.0, 1944, 25.0, 129802.0, 13.0, 8.0, 4.0),
('1해금', 1, 18000, 9.0, 1323, 14.0, 140173.0, 4, 4, 0.0),
('2해금', 2, 19500, 18.0,2646, 25.0, 151741.0, 5, 5, 0.0);
CREATE TABLE `character_cube` (
`NICKNAME` varchar(50) NOT NULL COMMENT '캐릭터 닉네임',
`CUBES` json DEFAULT NULL COMMENT '큐브정보',
PRIMARY KEY (`NICKNAME`),
CONSTRAINT `fk_character_info_nickname` FOREIGN KEY (`NICKNAME`) REFERENCES `character_info` (`NICKNAME`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='캐릭터 큐브 정보';
CREATE TABLE CHARACTER_EQUIPMENT (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
EQUIPMENTS JSON COMMENT '캐릭터 장비',
ACCESSORY JSON COMMENT '캐릭터 악세사리',
ENGRAVING JSON COMMENT '캐릭터 각인서',
CONSTRAINT FK_NICKNAME_EQUIPMENT FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 장비 정보';
CREATE TABLE CHARACTER_ARKPASSIVE (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
ARK_PASSIVE JSON COMMENT '캐릭터 아크패시브',
CONSTRAINT FK_NICKNAME_ARKPASSIVE FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 아크패시브 정보';
CREATE TABLE CHARACTER_CARD (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
NAME VARCHAR(50) COMMENT '카드세트명',
CARDS JSON COMMENT '캐릭터 카드',
CARD_SETS JSON COMMENT '캐릭터 카드 세트 효과',
CONSTRAINT FK_NICKNAME_CARD FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 카드 정보';
CREATE TABLE CHARACTER_JEWELS (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
JEWELS JSON COMMENT '캐릭터 보석',
CONSTRAINT FK_NICKNAME_JEWELS FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 보석 정보';
CREATE TABLE CHARACTER_GUILD (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
NAME VARCHAR(50) COMMENT '길드 이름',
IS_OWNER BOOLEAN DEFAULT FALSE COMMENT '길드장 여부',
CONSTRAINT FK_NICKNAME_GUILD FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 길드 정보';
CREATE TABLE CHARACTER_WISDOM (
NICKNAME VARCHAR(50) NOT NULL PRIMARY KEY COMMENT '캐릭터 닉네임',
NAME VARCHAR(50) COMMENT '영지 이름',
LEVEL INT COMMENT '영지 레벨',
CONSTRAINT FK_NICKNAME_WISDOM FOREIGN KEY (NICKNAME) REFERENCES CHARACTER_INFO(NICKNAME)
) COMMENT='캐릭터 영지 정보';
CREATE TABLE ITEM_PRICE_LOG (
BASE_DATE VARCHAR(8) NOT NULL COMMENT '기준일자',
ITEM_DVCD VARCHAR(2) NOT NULL COMMENT '아이템 구분코드 (01: 보석, 02: 각인서)',
ITEM_DATA JSON COMMENT '아이템 가격 데이터',
FST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '최초 등록 일자',
LST_DTTI TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '최종 수정 일자',
DL_YN CHAR(1) DEFAULT 'N' COMMENT '삭제 여부',
PRIMARY KEY (BASE_DATE, ITEM_DVCD) -- 기준일자 + 아이템 타입을 기본 키로 설정
) COMMENT = '아이템 일별 가격 데이터';