refac: schema.sql COLLATE, json_valid 지정
This commit is contained in:
@@ -31,8 +31,8 @@ CREATE TABLE `member` (
|
||||
`NAME` VARCHAR(64) NOT NULL,
|
||||
`PICTURE` VARCHAR(64) NULL DEFAULT 'default.jpg',
|
||||
`IMGSVR` INT(1) NULL DEFAULT '0',
|
||||
`acl` TEXT NOT NULL DEFAULT '{}' COMMENT 'json',
|
||||
`penalty` TEXT NOT NULL DEFAULT '{}' COMMENT 'json',
|
||||
`acl` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`penalty` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`GRADE` INT(1) NULL DEFAULT '1',
|
||||
`REG_NUM` INT(3) NULL DEFAULT '0',
|
||||
`REG_DATE` DATETIME NOT NULL,
|
||||
@@ -43,9 +43,12 @@ CREATE TABLE `member` (
|
||||
UNIQUE INDEX `ID` (`ID`),
|
||||
UNIQUE INDEX `EMAIL` (`EMAIL`),
|
||||
UNIQUE INDEX `kauth_id` (`oauth_id`),
|
||||
INDEX `delete_after` (`delete_after`)
|
||||
INDEX `delete_after` (`delete_after`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`acl`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`penalty`))
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria;
|
||||
|
||||
-- 로그인 로그 테이블
|
||||
CREATE TABLE `member_log` (
|
||||
@@ -53,12 +56,14 @@ CREATE TABLE `member_log` (
|
||||
`member_no` INT(11) NOT NULL,
|
||||
`date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`action_type` ENUM('reg','try_login','login','logout','oauth','change_pw','make_general','access_server','delete') NOT NULL,
|
||||
`action` TEXT NULL DEFAULT NULL COMMENT 'JSON',
|
||||
`action` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `action` (`member_no`, `action_type`, `date`),
|
||||
INDEX `member` (`member_no`, `date`)
|
||||
INDEX `member` (`member_no`, `date`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`action`))
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria;
|
||||
|
||||
###################
|
||||
# KV storage
|
||||
@@ -69,9 +74,10 @@ CREATE TABLE if not exists `storage` (
|
||||
`key` VARCHAR(40) NOT NULL,
|
||||
`value` TEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `key` (`namespace`, `key`)
|
||||
UNIQUE INDEX `key` (`namespace`, `key`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`value`))
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
COLLATE='utf8mb4_bin'
|
||||
ENGINE=Aria;
|
||||
|
||||
CREATE TABLE `login_token` (
|
||||
@@ -86,5 +92,4 @@ CREATE TABLE `login_token` (
|
||||
INDEX `by_date` (`user_id`, `expire_date`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria
|
||||
;
|
||||
ENGINE=Aria;
|
||||
+237
-252
@@ -1,7 +1,6 @@
|
||||
############################################################################
|
||||
##############################
|
||||
## 장수 테이블
|
||||
############################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE `general` (
|
||||
`no` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`owner` INT(11) NOT NULL DEFAULT '0',
|
||||
@@ -40,7 +39,7 @@ CREATE TABLE `general` (
|
||||
`dex5` INT(8) NOT NULL DEFAULT '0',
|
||||
`officer_level` INT(2) NOT NULL DEFAULT '0',
|
||||
`officer_city` INT(4) NOT NULL DEFAULT '0',
|
||||
`permission` ENUM('normal','auditor','ambassador') NULL DEFAULT 'normal',
|
||||
`permission` ENUM('normal', 'auditor', 'ambassador') NULL DEFAULT 'normal',
|
||||
`gold` INT(6) NOT NULL DEFAULT '1000',
|
||||
`rice` INT(6) NOT NULL DEFAULT '1000',
|
||||
`crew` INT(5) NOT NULL DEFAULT '0',
|
||||
@@ -76,9 +75,9 @@ CREATE TABLE `general` (
|
||||
`tournament` INT(1) NULL DEFAULT '0',
|
||||
`vote` INT(1) NULL DEFAULT '0',
|
||||
`newvote` INT(1) NULL DEFAULT '0',
|
||||
`last_turn` TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`last_turn`)),
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`aux`)),
|
||||
`penalty` TEXT NULL DEFAULT '',
|
||||
`last_turn` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`penalty` TEXT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`no`),
|
||||
INDEX `nation` (`nation`, `npc`),
|
||||
INDEX `city` (`city`),
|
||||
@@ -89,30 +88,25 @@ CREATE TABLE `general` (
|
||||
INDEX `officer_level` (`nation`, `officer_level`),
|
||||
INDEX `officer_city` (`officer_city`, `officer_level`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `last_refresh` (`lastrefresh`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria;
|
||||
|
||||
INDEX `last_refresh` (`lastrefresh`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`last_turn`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`aux`)),
|
||||
CONSTRAINT `json3` CHECK (json_valid(`penalty`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
CREATE TABLE `general_turn` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`general_id` INT(11) NOT NULL,
|
||||
`turn_idx` INT(4) NOT NULL,
|
||||
`action` VARCHAR(20) NOT NULL,
|
||||
`arg` TEXT NULL DEFAULT NULL,
|
||||
`arg` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
`brief` TEXT NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `general_id` (`general_id`, `turn_idx`),
|
||||
INDEX `action` (`action`, `turn_idx`, `general_id`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
###########################################################################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 국가 테이블
|
||||
###########################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE `nation` (
|
||||
`nation` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_bin',
|
||||
@@ -133,29 +127,35 @@ CREATE TABLE `nation` (
|
||||
`surlimit` INT(4) NULL DEFAULT '72',
|
||||
`tech` float NULL DEFAULT '0',
|
||||
`power` INT(8) NULL DEFAULT '0',
|
||||
`spy` TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`spy`)),
|
||||
`spy` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`level` INT(1) NULL DEFAULT '0',
|
||||
`type` VARCHAR(20) NOT NULL DEFAULT 'che_중립',
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`aux`)),
|
||||
PRIMARY KEY (`nation`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`nation`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`spy`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`aux`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
CREATE TABLE `nation_turn` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nation_id` INT(11) NOT NULL,
|
||||
`officer_level` INT(4) NOT NULL,
|
||||
`turn_idx` INT(4) NOT NULL,
|
||||
`action` VARCHAR(16) NOT NULL,
|
||||
`arg` TEXT NULL DEFAULT NULL CHECK (json_valid(`arg`)),
|
||||
`action` VARCHAR(16) NOT NULL COLLATE 'utf8mb4_bin',
|
||||
`arg` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
`brief` TEXT NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `nation` (`nation_id`, `officer_level`, `turn_idx`),
|
||||
INDEX `action` (`action`, `turn_idx`, `nation_id`, `officer_level`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
##회의실
|
||||
INDEX `action` (
|
||||
`action`,
|
||||
`turn_idx`,
|
||||
`nation_id`,
|
||||
`officer_level`
|
||||
),
|
||||
CONSTRAINT `json` CHECK (json_valid(`arg`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 회의실
|
||||
##############################
|
||||
CREATE TABLE `board` (
|
||||
`no` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nation_no` INT(11) NOT NULL,
|
||||
@@ -168,9 +168,7 @@ CREATE TABLE `board` (
|
||||
`text` TEXT NOT NULL,
|
||||
PRIMARY KEY (`no`),
|
||||
INDEX `nation_no` (`nation_no`, `is_secret`, `date`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
CREATE TABLE `comment` (
|
||||
`no` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nation_no` INT(11) NOT NULL,
|
||||
@@ -183,12 +181,10 @@ CREATE TABLE `comment` (
|
||||
PRIMARY KEY (`no`),
|
||||
INDEX `nation_no` (`nation_no`, `is_secret`, `date`),
|
||||
INDEX `document_no` (`document_no`, `date`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 도시 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
## trade 100 이 표준 시세
|
||||
CREATE TABLE `city` (
|
||||
`city` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
@@ -216,26 +212,23 @@ CREATE TABLE `city` (
|
||||
`state` INT(2) NOT NULL DEFAULT '0',
|
||||
`region` INT(2) NOT NULL,
|
||||
`term` INT(1) NOT NULL DEFAULT '0',
|
||||
`conflict` TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`conflict`)),
|
||||
`conflict` TEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`city`),
|
||||
INDEX `nation` (`nation`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
INDEX `nation` (`nation`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`conflict`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 부대 테이블
|
||||
###########################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE `troop` (
|
||||
`troop_leader` INT(6) NOT NULL,
|
||||
`nation` INT(6) NOT NULL,
|
||||
`name` VARCHAR(50) NOT NULL,
|
||||
PRIMARY KEY (`troop_leader`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
##########################################################################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 락 테이블
|
||||
##########################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE `plock` (
|
||||
`no` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`type` ENUM('GAME', 'ETC', 'TOURNAMENT') NOT NULL DEFAULT 'GAME',
|
||||
@@ -243,33 +236,26 @@ CREATE TABLE `plock` (
|
||||
`locktime` DATETIME(6) NOT NULL,
|
||||
PRIMARY KEY (`no`),
|
||||
UNIQUE INDEX `type` (`type`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
###########################################################################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 메시지 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
CREATE TABLE `message` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`mailbox` INT(11) NOT NULL COMMENT '9999 == public, >= 9000 national',
|
||||
`type` ENUM('private','national','public','diplomacy') NOT NULL,
|
||||
`type` ENUM('private', 'national', 'public', 'diplomacy') NOT NULL,
|
||||
`src` INT(11) NOT NULL,
|
||||
`dest` INT(11) NOT NULL,
|
||||
`time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`valid_until` DATETIME NOT NULL DEFAULT '9999-12-31 23:59:59',
|
||||
`message` TEXT NOT NULL CHECK (json_valid(`message`)),
|
||||
`message` TEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `by_mailbox` (`mailbox`, `type`, `id`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria;
|
||||
|
||||
###########################################################################
|
||||
INDEX `by_mailbox` (`mailbox`, `type`, `id`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`message`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 명전 테이블
|
||||
###########################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `hall` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL,
|
||||
@@ -279,20 +265,17 @@ CREATE TABLE IF NOT EXISTS `hall` (
|
||||
`type` VARCHAR(20) NOT NULL,
|
||||
`value` DOUBLE NOT NULL,
|
||||
`owner` INT(11) NULL DEFAULT NULL,
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`aux`)),
|
||||
`aux` LONGTEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `server_general` (`server_id`, `type`, `general_no`),
|
||||
UNIQUE INDEX `owner` (`owner`, `server_id`, `type`),
|
||||
INDEX `server_show` (`server_id`, `type`, `value`),
|
||||
INDEX `scenario` (`season`, `scenario`, `type`, `value`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
||||
###########################################################################
|
||||
## 왕조 테이블
|
||||
###########################################################################
|
||||
|
||||
INDEX `scenario` (`season`, `scenario`, `type`, `value`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`aux`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 게임 정보 테이블(유지)
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `ng_games` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL,
|
||||
@@ -302,24 +285,28 @@ CREATE TABLE IF NOT EXISTS `ng_games` (
|
||||
`season` INT(11) NOT NULL,
|
||||
`scenario` INT(11) NOT NULL,
|
||||
`scenario_name` TEXT NOT NULL,
|
||||
`env` TEXT NOT NULL CHECK (json_valid(`env`)),
|
||||
`env` TEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `server_id` (`server_id`),
|
||||
INDEX `date` (`date`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
INDEX `date` (`date`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`env`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 멸망한 국가 목록(유지)
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `ng_old_nations` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL DEFAULT '0',
|
||||
`nation` INT(11) NOT NULL DEFAULT '0',
|
||||
`data` LONGTEXT NOT NULL DEFAULT '{}' CHECK (json_valid(`data`)),
|
||||
`data` LONGTEXT NOT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `server_id` (`server_id`, `nation`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
INDEX `server_id` (`server_id`, `nation`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`data`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 사망한 장수 목록(유지)
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `ng_old_generals` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL,
|
||||
@@ -328,14 +315,16 @@ CREATE TABLE IF NOT EXISTS `ng_old_generals` (
|
||||
`name` VARCHAR(32) NOT NULL,
|
||||
`last_yearmonth` INT(11) NOT NULL,
|
||||
`turntime` DATETIME(6) NOT NULL,
|
||||
`data` MEDIUMTEXT NOT NULL,
|
||||
`data` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `by_no` (`server_id`, `general_no`),
|
||||
INDEX `by_name` (`server_id`, `name`),
|
||||
INDEX `owner` (`owner`, `server_id`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
INDEX `owner` (`owner`, `server_id`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`data`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 왕조 테이블(유지)
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `emperior` (
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NULL DEFAULT '',
|
||||
@@ -377,48 +366,59 @@ CREATE TABLE IF NOT EXISTS `emperior` (
|
||||
`tiger` VARCHAR(128) NULL DEFAULT '',
|
||||
`eagle` VARCHAR(128) NULL DEFAULT '',
|
||||
`gen` TEXT NULL DEFAULT '',
|
||||
`history` MEDIUMTEXT NULL DEFAULT '{}' CHECK (json_valid(`aux`)),
|
||||
`aux` MEDIUMTEXT NULL DEFAULT '{}' CHECK (json_valid(`aux`)),
|
||||
PRIMARY KEY (`no`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
`history` MEDIUMTEXT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
`aux` MEDIUMTEXT NULL DEFAULT '{}' COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`no`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`history`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`aux`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 외교 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
create table diplomacy (
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`me` INT(6) NOT NULL,
|
||||
`you` INT(6) NOT NULL,
|
||||
`state` INT(6) NULL DEFAULT '0',
|
||||
`term` INT(6) NULL DEFAULT '0',
|
||||
`dead` INT(8) NULL DEFAULT '0',
|
||||
`showing` DATETIME NULL DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY (`no`),
|
||||
UNIQUE INDEX `me` (`me`, `you`)
|
||||
) ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`me` INT(6) NOT NULL,
|
||||
`you` INT(6) NOT NULL,
|
||||
`state` INT(6) NULL DEFAULT '0',
|
||||
`term` INT(6) NULL DEFAULT '0',
|
||||
`dead` INT(8) NULL DEFAULT '0',
|
||||
`showing` DATETIME NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`no`),
|
||||
UNIQUE INDEX `me` (`me`, `you`)
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 외교문서 테이블
|
||||
##############################
|
||||
CREATE TABLE `ng_diplomacy` (
|
||||
`no` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`src_nation_id` INT(11) NOT NULL,
|
||||
`dest_nation_id` INT(11) NOT NULL,
|
||||
`prev_no` INT(11) NULL DEFAULT NULL,
|
||||
`state` ENUM('proposed','activated','cancelled','replaced') NOT NULL DEFAULT 'proposed',
|
||||
`state` ENUM('proposed', 'activated', 'cancelled', 'replaced') NOT NULL DEFAULT 'proposed',
|
||||
`text_brief` TEXT NOT NULL,
|
||||
`text_detail` TEXT NOT NULL,
|
||||
`date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`src_signer` INT(11) NOT NULL,
|
||||
`dest_signer` INT(11) NULL DEFAULT NULL,
|
||||
`aux` TEXT NULL DEFAULT NULL CHECK (json_valid(`aux`)),
|
||||
`aux` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`no`),
|
||||
INDEX `by_nation_src` (`src_nation_id`, `dest_nation_id`, `state`, `date`),
|
||||
INDEX `by_nation_dest` (`dest_nation_id`, `src_nation_id`, `state`, `date`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
INDEX `by_nation_src` (
|
||||
`src_nation_id`,
|
||||
`dest_nation_id`,
|
||||
`state`,
|
||||
`date`
|
||||
),
|
||||
INDEX `by_nation_dest` (
|
||||
`dest_nation_id`,
|
||||
`src_nation_id`,
|
||||
`state`,
|
||||
`date`
|
||||
),
|
||||
CONSTRAINT `json` CHECK (json_valid(`aux`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 토너먼트 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
CREATE TABLE `tournament` (
|
||||
`seq` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`no` INT(6) NULL DEFAULT 0,
|
||||
@@ -440,32 +440,27 @@ CREATE TABLE `tournament` (
|
||||
`prmt` INT(1) NULL DEFAULT 0,
|
||||
PRIMARY KEY (`seq`),
|
||||
INDEX `grp` (`grp`, `grp_no`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria;
|
||||
|
||||
###########################################################################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 거래 테이블
|
||||
###########################################################################
|
||||
create table auction (
|
||||
no int(6) not null auto_increment,
|
||||
type int(6) default 0,
|
||||
no1 int(6) default 0,
|
||||
name1 varchar(64) default '-',
|
||||
amount int(6) default 0,
|
||||
cost int(6) default 0,
|
||||
value int(6) default 0,
|
||||
topv int(6) default 0,
|
||||
no2 int(6) default 0,
|
||||
name2 varchar(64) default '-',
|
||||
expire datetime,
|
||||
|
||||
PRIMARY KEY (no)
|
||||
) ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
##############################
|
||||
create table `auction` (
|
||||
`no` int(6) not null auto_increment,
|
||||
`type` int(6) default 0,
|
||||
`no1` int(6) default 0,
|
||||
`name1` varchar(64) default '-',
|
||||
`amount` int(6) default 0,
|
||||
`cost` int(6) default 0,
|
||||
`value` int(6) default 0,
|
||||
`topv` int(6) default 0,
|
||||
`no2` int(6) default 0,
|
||||
`name2` varchar(64) default '-',
|
||||
`expire` datetime,
|
||||
PRIMARY KEY (`no`)
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 통계 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
CREATE TABLE `statistic` (
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`year` INT(4) NULL DEFAULT '0',
|
||||
@@ -479,48 +474,46 @@ CREATE TABLE `statistic` (
|
||||
`power_hist` TEXT NULL DEFAULT '',
|
||||
`crewtype` TEXT NULL DEFAULT '',
|
||||
`etc` TEXT NULL DEFAULT '',
|
||||
`aux` TEXT NULL DEFAULT NULL CHECK (json_valid(`aux`)),
|
||||
PRIMARY KEY (`no`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
`aux` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`no`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`aux`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 연감 테이블
|
||||
###########################################################################
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `ng_history` (
|
||||
`no` INT(6) NOT NULL AUTO_INCREMENT,
|
||||
`server_id` CHAR(20) NOT NULL,
|
||||
`year` INT(4) NULL,
|
||||
`month` INT(2) NULL,
|
||||
`map` MEDIUMTEXT NULL DEFAULT NULL CHECK (json_valid(`map`)),
|
||||
`global_history` MEDIUMTEXT NULL DEFAULT NULL CHECK (json_valid(`global_history`)),
|
||||
`global_action` MEDIUMTEXT NULL DEFAULT NULL CHECK (json_valid(`global_action`)),
|
||||
`nations` MEDIUMTEXT NULL DEFAULT NULL CHECK (json_valid(`nations`)),
|
||||
`map` MEDIUMTEXT NULL DEFAULT NULL,
|
||||
`global_history` MEDIUMTEXT NULL DEFAULT NULL,
|
||||
`global_action` MEDIUMTEXT NULL DEFAULT NULL,
|
||||
`nations` MEDIUMTEXT NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`no`),
|
||||
INDEX `server_id` (`server_id`, `year`, `month`)
|
||||
)
|
||||
ENGINE=Aria DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
###########################################################################
|
||||
INDEX `server_id` (`server_id`, `year`, `month`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`map`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`global_history`)),
|
||||
CONSTRAINT `json3` CHECK (json_valid(`global_action`)),
|
||||
CONSTRAINT `json4` CHECK (json_valid(`nations`))
|
||||
) COLLATE = 'utf8mb4_bin' ENGINE = Aria;
|
||||
##############################
|
||||
## 이벤트 핸들러 테이블
|
||||
###########################################################################
|
||||
|
||||
##############################
|
||||
CREATE TABLE `event` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`target` ENUM('MONTH','OCCUPY_CITY','DESTROY_NATION') NOT NULL DEFAULT 'MONTH',
|
||||
`priority` INT(11) NOT NULL DEFAULT '1000',
|
||||
`condition` MEDIUMTEXT NOT NULL,
|
||||
`action` MEDIUMTEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `target` (`target`, `priority`, `id`),
|
||||
CONSTRAINT `condition` CHECK (json_valid(`condition`)),
|
||||
CONSTRAINT `action` CHECK (json_valid(`action`))
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria;
|
||||
|
||||
|
||||
##전체 이벤트 기록 테이블
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`target` ENUM('MONTH', 'OCCUPY_CITY', 'DESTROY_NATION') NOT NULL DEFAULT 'MONTH',
|
||||
`priority` INT(11) NOT NULL DEFAULT '1000',
|
||||
`condition` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
`action` MEDIUMTEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `target` (`target`, `priority`, `id`),
|
||||
CONSTRAINT `json1` CHECK (json_valid(`condition`)),
|
||||
CONSTRAINT `json2` CHECK (json_valid(`action`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 전체 이벤트 기록 테이블
|
||||
##############################
|
||||
CREATE TABLE `world_history` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nation_id` INT(11) NOT NULL,
|
||||
@@ -530,57 +523,50 @@ CREATE TABLE `world_history` (
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `date` (`nation_id`, `year`, `month`, `id`),
|
||||
INDEX `plain` (`nation_id`, `id`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
##장수 동향 테이블
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
############################
|
||||
## 장수 동향 테이블
|
||||
##############################
|
||||
CREATE TABLE `general_record` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`general_id` INT(11) NOT NULL,
|
||||
`log_type` ENUM('action','battle_brief','battle', 'history') NOT NULL,
|
||||
`log_type` ENUM('action', 'battle_brief', 'battle', 'history') NOT NULL,
|
||||
`year` INT(4) NOT NULL,
|
||||
`month` INT(2) NOT NULL,
|
||||
`text` TEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `date` (`general_id`, `log_type`, `year`, `month`, `id`),
|
||||
INDEX `plain` (`general_id`, `log_type`, `id`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
######
|
||||
# 예약 오픈 테이블
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 예약 오픈 테이블
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `reserved_open` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`options` TEXT NULL DEFAULT NULL CHECK (json_valid(`options`)),
|
||||
`options` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
|
||||
`date` DATETIME NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `date` (`date`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria;
|
||||
|
||||
######
|
||||
# 장수 선택 토큰
|
||||
INDEX `date` (`date`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`options`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 장수 선택 토큰
|
||||
##############################
|
||||
CREATE TABLE `select_npc_token` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`owner` INT(11) NOT NULL,
|
||||
`valid_until` DATETIME NOT NULL,
|
||||
`pick_more_from` DATETIME NOT NULL,
|
||||
`pick_result` TEXT NOT NULL CHECK (json_valid(`pick_result`)),
|
||||
`pick_result` TEXT NOT NULL COLLATE 'utf8mb4_bin',
|
||||
`nonce` INT(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `owner` (`owner`),
|
||||
INDEX `valid_until` (`valid_until`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria;
|
||||
|
||||
######
|
||||
# 장수 생성 풀 토큰
|
||||
INDEX `valid_until` (`valid_until`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`pick_result`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 장수 생성 풀 토큰
|
||||
##############################
|
||||
CREATE TABLE `select_pool` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`unique_name` VARCHAR(20) NOT NULL,
|
||||
@@ -593,36 +579,32 @@ CREATE TABLE `select_pool` (
|
||||
UNIQUE INDEX `general_id` (`general_id`),
|
||||
INDEX `owner` (`owner`),
|
||||
INDEX `reserved_until` (`reserved_until`, `general_id`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
###################
|
||||
# KV storage
|
||||
###################
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## KV storage
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `storage` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`namespace` VARCHAR(40) NOT NULL,
|
||||
`key` VARCHAR(40) NOT NULL,
|
||||
`value` LONGTEXT NOT NULL CHECK (json_valid(`value`)),
|
||||
`value` LONGTEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `key` (`namespace`, `key`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria;
|
||||
|
||||
UNIQUE INDEX `key` (`namespace`, `key`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`value`))
|
||||
) COLLATE = 'utf8mb4_bin' ENGINE = Aria;
|
||||
CREATE TABLE IF NOT EXISTS `nation_env` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`namespace` INT(11) NOT NULL, #storage와 다름!
|
||||
`namespace` INT(11) NOT NULL,
|
||||
##storage와 다름!
|
||||
`key` VARCHAR(40) NOT NULL,
|
||||
`value` LONGTEXT NOT NULL CHECK (json_valid(`value`)),
|
||||
`value` LONGTEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `key` (`namespace`, `key`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria;
|
||||
|
||||
UNIQUE INDEX `key` (`namespace`, `key`),
|
||||
CONSTRAINT `json` CHECK (json_valid(`value`))
|
||||
) COLLATE = 'utf8mb4_bin' ENGINE = Aria;
|
||||
##############################
|
||||
## 베팅
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `betting` (
|
||||
`general_id` INT(11) NOT NULL,
|
||||
`bet0` INT(11) NOT NULL DEFAULT 0,
|
||||
@@ -642,9 +624,10 @@ CREATE TABLE IF NOT EXISTS `betting` (
|
||||
`bet14` INT(11) NOT NULL DEFAULT 0,
|
||||
`bet15` INT(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`general_id`)
|
||||
)
|
||||
ENGINE=Aria;
|
||||
|
||||
) ENGINE = Aria;
|
||||
##############################
|
||||
## 명장일람
|
||||
##############################
|
||||
CREATE TABLE `rank_data` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`nation_id` INT(11) NOT NULL DEFAULT 0,
|
||||
@@ -655,11 +638,10 @@ CREATE TABLE `rank_data` (
|
||||
UNIQUE INDEX `by_general` (`general_id`, `type`),
|
||||
INDEX `by_type` (`type`, `value`),
|
||||
INDEX `by_nation` (`nation_id`, `type`, `value`)
|
||||
)
|
||||
COLLATE='utf8mb4_general_ci'
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 유저 전용 로그
|
||||
##############################
|
||||
CREATE TABLE IF NOT EXISTS `user_record` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` INT(11) NOT NULL,
|
||||
@@ -670,29 +652,32 @@ CREATE TABLE IF NOT EXISTS `user_record` (
|
||||
`date` DATETIME NULL DEFAULT NULL,
|
||||
`text` TEXT NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `date1` (`user_id`, `server_id`, `log_type`, `year`, `month`, `id`),
|
||||
INDEX `date1` (
|
||||
`user_id`,
|
||||
`server_id`,
|
||||
`log_type`,
|
||||
`year`,
|
||||
`month`,
|
||||
`id`
|
||||
),
|
||||
INDEX `date2` (`user_id`, `server_id`, `log_type`, `date`, `id`),
|
||||
INDEX `date3` (`server_id`, `date`),
|
||||
INDEX `date4` (`server_id`, `year`, `month`, `date`),
|
||||
INDEX `plain` (`user_id`, `log_type`, `id`)
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
##############################
|
||||
## 신규 베팅
|
||||
##############################
|
||||
CREATE TABLE `ng_betting` (
|
||||
`id` INT(11) NOT NULL AUTO_INCREMENT,
|
||||
`betting_id` INT(11) NOT NULL,
|
||||
`general_id` INT(11) NOT NULL,
|
||||
`user_id` INT(11) NULL DEFAULT NULL,
|
||||
`betting_type` VARCHAR(100) NOT NULL COMMENT 'JSON',
|
||||
`betting_type` VARCHAR(100) NOT NULL COLLATE 'utf8mb4_bin',
|
||||
`amount` INT(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `by_general` (`general_id`, `betting_id`, `betting_type`),
|
||||
UNIQUE INDEX `by_bet` (`betting_id`, `betting_type`, `general_id`),
|
||||
INDEX `by_user` (`user_id`, `betting_id`, `betting_type`),
|
||||
CONSTRAINT `type_json` CHECK (json_valid(`betting_type`))
|
||||
)
|
||||
DEFAULT CHARSET=utf8mb4
|
||||
ENGINE=Aria
|
||||
;
|
||||
CONSTRAINT `json` CHECK (json_valid(`betting_type`))
|
||||
) COLLATE = 'utf8mb4_general_ci' ENGINE = Aria;
|
||||
Reference in New Issue
Block a user