-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema eod_authentication
-- -----------------------------------------------------
-- 인증 데이터베이스
-- -----------------------------------------------------
-- Schema eod_game
-- -----------------------------------------------------
-- 게임 데이터베이스
-- -----------------------------------------------------
-- Schema eod_log
-- -----------------------------------------------------
-- 로그 데이터베이스

-- -----------------------------------------------------
-- Schema eod_log
--
-- 로그 데이터베이스
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `eod_log` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
-- -----------------------------------------------------
-- Schema eod_ranking
-- -----------------------------------------------------
-- 랭킹 데이터베이스
-- -----------------------------------------------------
-- Schema eod_community
-- -----------------------------------------------------
-- 커뮤니티 데이터베이스
-- -----------------------------------------------------
-- Schema eod_tool
-- -----------------------------------------------------
-- 서비스 관리도구용 데이터베이스
-- -----------------------------------------------------
-- Schema eod_configuration
-- -----------------------------------------------------
-- 서비스 설정 데이터베이스
-- -----------------------------------------------------
-- Schema eod_global
-- -----------------------------------------------------
-- 전역 서비스 관리 데이터베이스
USE `eod_log` ;

-- -----------------------------------------------------
-- Table `eod_log`.`table_equipment`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_equipment` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `item_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '아이템 ID',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `enhance_level` INT(11) NOT NULL DEFAULT '0' COMMENT '강화 단계',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_equipment_log_time` (`log_time` ASC),
  INDEX `idx_table_equipment_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '장착 아이템 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_item`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_item` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_item_log_time` (`log_time` ASC),
  INDEX `idx_table_item_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '재화 아이템의 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_guardian_stone`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_guardian_stone` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `enhance_level` INT(11) NOT NULL DEFAULT '0' COMMENT '강화 단계',
  `state` TINYINT(4) NOT NULL DEFAULT '0',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_guardian_stone_log_time` (`log_time` ASC),
  INDEX `idx_table_guardian_stone_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '수호석 강화 정보 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_avatar`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_avatar` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_avatar_log_time` (`log_time` ASC),
  INDEX `idx_table_avatar_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '아바타 획득 기록 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_normal`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_normal` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_normal_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_normal_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '일반 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_elite`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_elite` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT 0 COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT 0 COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT 0 COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT '완료 등급',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_elite_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_elite_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '정예 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_weekly`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_weekly` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_weekly_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_weekly_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '요일 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_rift`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_rift` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_rift_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_rift_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '균열 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_transcendence`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_transcendence` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  `single_ranking` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '싱글 플레이 랭킹',
  `party_ranking` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '파티 플레이 랭킹',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_transcendence_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_transcendence_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '초월 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_arena_async`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_arena_async` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `rank` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '랭킹',
  `rank_grade` INT(11) NOT NULL DEFAULT '0' COMMENT '랭킹 등급',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `enemy_user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '대전한 상대방의 플레이어 ID',
  `enemy_character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '대전한 상대방 캐릭터의 ID',
  `enemy_character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '대전한 상대방 캐릭터의 레벨',
  `enemy_rank` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '대전한 상대방 플레이어의 랭킹',
  `enemy_rank_grade` INT(11) NOT NULL DEFAULT '0' COMMENT '대전한 플레이어의 랭킹 등급',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_seconds` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간(초 단위)',
  `battle_result` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '전투 결과\n: Stage.eResult의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_arena_async_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_arena_async_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '결투장(비동기식) 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_gold`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_gold` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_gold_log_time` (`log_time` ASC),
  INDEX `idx_table_gold_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '게임 플레이 화폐 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_gem`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_gem` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_gem_log_time` (`log_time` ASC),
  INDEX `idx_table_gem_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '과금 화폐  획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_admission`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_admission` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_admission_log_time` (`log_time` ASC),
  INDEX `idx_table_admission_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '입장권 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_friendship_point`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_friendship_point` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_friendship_point_log_time` (`log_time` ASC),
  INDEX `idx_table_friendship_point_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '우정점수 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_rift_stone`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_rift_stone` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_rift_stone_log_time` (`log_time` ASC),
  INDEX `idx_table_rift_stone_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '균열석 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_servant`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_servant` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `level` INT(11) NOT NULL DEFAULT '0' COMMENT '조력자 레벨',
  `grade` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '조력자 등급',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_servant_log_time` (`log_time` ASC),
  INDEX `idx_table_servant_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '조력자 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_daily_mission`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_daily_mission` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `get_reward` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 지급 받았는지 여부',
  `is_reset` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '초기화했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_daily_mission_log_time` (`log_time` ASC),
  INDEX `idx_table_daily_mission_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '일일 미션 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_weekly_mission`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_weekly_mission` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `get_reward` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 지급 받았는지 여부',
  `is_reset` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '초기화했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_weekly_mission_log_time` (`log_time` ASC),
  INDEX `idx_table_weekly_mission_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '주간 미션 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_monthly_mission`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_monthly_mission` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `get_reward` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 지급 받았는지 여부',
  `is_reset` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '초기화했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_monthly_mission_log_time` (`log_time` ASC),
  INDEX `idx_table_monthly_mission_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '월간 미션 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_achievement`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_achievement` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `get_reward` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 지급 받았는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_achievement_log_time` (`log_time` ASC),
  INDEX `idx_table_achievement_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '업적 정보 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_billing`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_billing` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `market_type` INT(11) NOT NULL DEFAULT '0' COMMENT '마켓 타입',
  `package_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '결제를 요청한 애플리케이션의 패키지 이름',
  `order_number` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '주문번호\n: 같은 종류의 상품일지라도, 구매할 때마다 다르게 나온다.',
  `billing_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '결제 ID\n: 결제가 실패했을 때, 재지급을 위한 추적 용도로 사용하는 ID',
  `product_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '상품 식별 ID\n: 이게 상품의 종류임',
  `purchase_token` VARCHAR(4096) NOT NULL DEFAULT '' COMMENT '결제 토큰\n: 이것으로 실제 결제가 이루어졌는지 결제 검증 서버가 판별한다.\n  OneStore 결제 토큰이 더럽게 길어서 (2700자 이상임) 길이를 매우 넉넉하게 잡았다.',
  `product_code` INT(11) NOT NULL DEFAULT '0' COMMENT '지급한 상품의 종류 식별 코드',
  `state` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '결제 진행 상태 \n: eBillingState의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_billing_log_time` (`log_time` ASC),
  INDEX `idx_table_billing_user_id_character_id` (`user_id` ASC))
ENGINE = InnoDB
COMMENT = '결제 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_guardian_raid`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_guardian_raid` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_guardian_raid_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_guardian_raid_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '수호 레이드 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_guild_war`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_guild_war` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  `single_ranking` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '싱글 플레이 랭킹',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_guardian_raid_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_guardian_raid_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '길드전 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_arena_async_reward`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_arena_async_reward` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `rank` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '랭킹',
  `rank_grade` INT(11) NOT NULL DEFAULT '0' COMMENT '랭킹등급',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_rewarded` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 수령했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_arena_async_reward_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_arena_async_reward_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '결투장(비동기식) 스테이지의 보상 수령';


-- -----------------------------------------------------
-- Table `eod_log`.`table_ruby`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_ruby` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_ruby_log_time` (`log_time` ASC),
  INDEX `idx_table_ruby_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '루비 재화의 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_guild_coin`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_guild_coin` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_admission_log_time` (`log_time` ASC),
  INDEX `idx_table_admission_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '입장권 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_mileage`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_mileage` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '변화량',
  `after_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '처리 이후의 보유량',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `consume_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '소비 경로\n: eRoute의 값과 같다.',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_mileage_log_time` (`log_time` ASC),
  INDEX `idx_table_mileage_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '입장권 획득 / 소모 내역 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_occupation_war`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_occupation_war` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `rank` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '랭킹',
  `rank_grade` INT(11) NOT NULL DEFAULT '0' COMMENT '랭킹 등급',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `stage_mode` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '스테이지 모드\n: eOccupationWarMode의 값과 같다.',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `battle_result` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '전투 결과\n: Stage.eResult의 값과 같다.',
  `rank_in_party_by_damage` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '파티 내 적에게 준 피해량의 랭킹',
  `rank_in_party_by_kill` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '파티 내 적 처치 수 랭킹',
  `rank_in_party_by_occupation` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '파티 내 점령 기여도 랭킹',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_occupation_war_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_occupation_war_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '점령전 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_occupation_war_reward`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_occupation_war_reward` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `rank` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '랭킹',
  `rank_grade` INT(11) NOT NULL DEFAULT '0' COMMENT '랭킹등급',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `stage_mode` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '스테이지 모드\n: eOccupationWarMode의 값과 같다.',
  `is_rewarded` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '보상을 수령했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_occupation_war_reward_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_occupation_war_reward_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '점령전 스테이지의 보상 수령';


-- -----------------------------------------------------
-- Table `eod_log`.`table_stage_west`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_stage_west` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `general_type_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `is_clear` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '완료 여부',
  `play_time` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이 시간',
  `star_point` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '완료 등급',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_stage_west_log_time` (`log_time` ASC),
  INDEX `idx_table_stage_west_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '서부 지역 스테이지 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_shopping`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_shopping` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `guardian_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어의 수호자 레벨',
  `character_level` INT(11) NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터의 레벨',
  `product_code` INT(11) NOT NULL DEFAULT '0' COMMENT '로그 대상이 되는 일반 타입 식별 코드',
  `buy_amount` INT(11) NOT NULL DEFAULT '0' COMMENT '구매량',
  `completed` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '구매를 완료했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_shopping_log_time` (`log_time` ASC),
  INDEX `idx_table_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '상점 이용 내역에 대한 로그';


-- -----------------------------------------------------
-- Table `eod_log`.`table_post`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_log`.`table_post` (
  `log_no` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '로그 번호',
  `log_time` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '로그 일시',
  `user_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 ID',
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '플레이어 캐릭터 ID',
  `post_no` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '우편의 식별 번호',
  `sender_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '발신자의 사용자 ID',
  `item_code` INT(11) NOT NULL DEFAULT '0' COMMENT '첨부물의 아이템 식별 코드',
  `amount` INT(11) NOT NULL DEFAULT '0' COMMENT '첨부물의 양',
  `state` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0 : 받기 가능한 우편\n1 : 유효기간 지나 삭제된 우편\n2 : 운영자가 삭제한 우편',
  `get_route` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '획득 경로\n: eRoute의 값과 같다.',
  `opened` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '메일을 수신했는지 여부',
  `received` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '우편의 첨부물을 수령했는지 여부',
  PRIMARY KEY (`log_no`),
  INDEX `idx_table_post_log_time` (`log_time` ASC),
  INDEX `idx_table_user_id_character_id` (`user_id` ASC, `character_id` ASC))
ENGINE = InnoDB
COMMENT = '우편 전달 내역 로그';


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
