서버 게시글
This commit is contained in:
61
GameServer/sql/portfolio_schema.sql
Normal file
61
GameServer/sql/portfolio_schema.sql
Normal file
@@ -0,0 +1,61 @@
|
||||
-- =============================================================
|
||||
-- 포트폴리오 스키마 참조 파일 (MariaDB / utf8mb4)
|
||||
-- 실제 생성은 서버 기동 시 Data/PortfolioSchemaInitializer.cs 가 담당한다.
|
||||
-- 이 파일은 수동 배포·점검용 사본이며, 몇 번을 실행해도 안전하다(멱등).
|
||||
-- - 테이블: CREATE TABLE IF NOT EXISTS
|
||||
-- - 시드 : INSERT IGNORE (slug 유니크 키로 중복 삽입 차단)
|
||||
-- created_at / updated_at 은 애플리케이션이 DateTime.UtcNow 로 직접 기록한다.
|
||||
-- (ON UPDATE CURRENT_TIMESTAMP 에 의존하지 않는다.)
|
||||
-- =============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tb_portfolio_category (
|
||||
category_no INT AUTO_INCREMENT PRIMARY KEY,
|
||||
slug VARCHAR(64) NOT NULL,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
description VARCHAR(255) NULL,
|
||||
accent VARCHAR(32) NULL,
|
||||
sort_order INT NOT NULL DEFAULT 0,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_portfolio_category_slug (slug)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tb_portfolio_post (
|
||||
post_no INT AUTO_INCREMENT PRIMARY KEY,
|
||||
category_no INT NOT NULL,
|
||||
title VARCHAR(200) NOT NULL,
|
||||
summary VARCHAR(500) NULL,
|
||||
content_md MEDIUMTEXT NULL,
|
||||
thumbnail_url VARCHAR(500) NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY ix_portfolio_post_category (category_no),
|
||||
CONSTRAINT fk_portfolio_post_category FOREIGN KEY (category_no)
|
||||
REFERENCES tb_portfolio_category (category_no) ON DELETE RESTRICT
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tb_portfolio_post_image (
|
||||
image_no INT AUTO_INCREMENT PRIMARY KEY,
|
||||
post_no INT NOT NULL,
|
||||
image_url VARCHAR(500) NOT NULL,
|
||||
caption VARCHAR(255) NULL,
|
||||
sort_order INT NOT NULL DEFAULT 0,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY ix_portfolio_post_image_post (post_no),
|
||||
CONSTRAINT fk_portfolio_post_image_post FOREIGN KEY (post_no)
|
||||
REFERENCES tb_portfolio_post (post_no) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- -------------------------------------------------------------
|
||||
-- 기본 카테고리 시드 (재실행해도 중복되지 않음)
|
||||
-- -------------------------------------------------------------
|
||||
INSERT IGNORE INTO tb_portfolio_category (slug, name, description, accent, sort_order, created_at)
|
||||
VALUES ('game', '게임', 'Unity 게임 프로젝트', '#7c5cff', 1, UTC_TIMESTAMP());
|
||||
|
||||
INSERT IGNORE INTO tb_portfolio_category (slug, name, description, accent, sort_order, created_at)
|
||||
VALUES ('dev', '개발', '서버 · 툴 · 시스템', '#20d5c4', 2, UTC_TIMESTAMP());
|
||||
|
||||
INSERT IGNORE INTO tb_portfolio_category (slug, name, description, accent, sort_order, created_at)
|
||||
VALUES ('art', '아트', '그래픽 · UI · 연출', '#ff5c9a', 3, UTC_TIMESTAMP());
|
||||
|
||||
INSERT IGNORE INTO tb_portfolio_category (slug, name, description, accent, sort_order, created_at)
|
||||
VALUES ('log', '기록', '작업 일지와 회고', '#ffb74d', 4, UTC_TIMESTAMP());
|
||||
Reference in New Issue
Block a user