wing-ops/database/migration/001_layer_table.sql

38 lines
2.3 KiB
SQL

-- ================================================================
-- 001: LAYER 테이블 생성 (SQLite layers.db → PostgreSQL wing DB 마이그레이션)
-- ================================================================
-- 기존 SQLite layers 테이블의 데이터를 PostgreSQL wing DB로 이전
-- 공공데이터베이스 표준화 관리 매뉴얼(2021.06) 네이밍 적용
-- ================================================================
CREATE TABLE IF NOT EXISTS LAYER (
LAYER_CD VARCHAR(50) NOT NULL, -- 레이어코드 (기존 cmn_cd)
UP_LAYER_CD VARCHAR(50), -- 상위레이어코드 (기존 up_cmn_cd)
LAYER_FULL_NM VARCHAR(200) NOT NULL, -- 레이어전체명 (기존 cmn_cd_full_nm)
LAYER_NM VARCHAR(100) NOT NULL, -- 레이어명 (기존 cmn_cd_nm)
LAYER_LEVEL INTEGER NOT NULL, -- 레이어레벨 (기존 cmn_cd_level)
WMS_LAYER_NM VARCHAR(100), -- WMS레이어명 (기존 clnm)
USE_YN CHAR(1) NOT NULL DEFAULT 'Y', -- 사용여부
SORT_ORD INTEGER DEFAULT 0, -- 정렬순서
REG_DTM TIMESTAMPTZ NOT NULL DEFAULT NOW(), -- 등록일시
DEL_YN CHAR(1) DEFAULT 'N' NOT NULL,
CONSTRAINT PK_LAYER PRIMARY KEY (LAYER_CD),
CONSTRAINT FK_LAYER_UP FOREIGN KEY (UP_LAYER_CD) REFERENCES LAYER(LAYER_CD),
CONSTRAINT CK_LAYER_USE_YN CHECK (USE_YN IN ('Y', 'N'))
);
COMMENT ON TABLE LAYER IS '레이어';
COMMENT ON COLUMN LAYER.LAYER_CD IS '레이어코드 (예: LYR001001)';
COMMENT ON COLUMN LAYER.UP_LAYER_CD IS '상위레이어코드 (상위 레이어 참조)';
COMMENT ON COLUMN LAYER.LAYER_FULL_NM IS '레이어전체명 (계층 경로 포함 전체 명칭)';
COMMENT ON COLUMN LAYER.LAYER_NM IS '레이어명 (표시용 짧은 명칭)';
COMMENT ON COLUMN LAYER.LAYER_LEVEL IS '레이어레벨 (1:최상위, 2:중분류, 3:소분류 ...)';
COMMENT ON COLUMN LAYER.WMS_LAYER_NM IS 'WMS레이어명 (GeoServer WMS 레이어 식별자)';
COMMENT ON COLUMN LAYER.USE_YN IS '사용여부 (Y:사용, N:미사용)';
COMMENT ON COLUMN LAYER.SORT_ORD IS '정렬순서';
COMMENT ON COLUMN LAYER.REG_DTM IS '등록일시';
CREATE INDEX IF NOT EXISTS IDX_LAYER_UP ON LAYER(UP_LAYER_CD);
CREATE INDEX IF NOT EXISTS IDX_LAYER_LEVEL ON LAYER(LAYER_LEVEL);
CREATE INDEX IF NOT EXISTS IDX_LAYER_USE ON LAYER(USE_YN);