-- ================================================================ -- 002: HNS 물질정보 테이블 (프론트엔드 정적 데이터 → DB 이전) -- ================================================================ -- 검색용 컬럼 + 상세 데이터 JSONB 구조 -- pg_trgm 인덱스로 한글/영문 물질명 검색 지원 -- ================================================================ CREATE TABLE IF NOT EXISTS HNS_SUBSTANCE ( SBST_SN SERIAL NOT NULL, -- 물질순번 ABBREVIATION VARCHAR(50), -- 약자/제품명 NM_KR VARCHAR(200) NOT NULL, -- 국문명 NM_EN VARCHAR(200), -- 영문명 UN_NO VARCHAR(10), -- UN번호 CAS_NO VARCHAR(20), -- CAS번호 SEBC VARCHAR(50), -- SEBC 거동분류 DATA JSONB NOT NULL, -- 전체 상세 데이터 USE_YN CHAR(1) NOT NULL DEFAULT 'Y', -- 사용여부 REG_DTM TIMESTAMPTZ NOT NULL DEFAULT NOW(), -- 등록일시 CONSTRAINT PK_HNS_SUBSTANCE PRIMARY KEY (SBST_SN), CONSTRAINT CK_HNS_SBST_USE CHECK (USE_YN IN ('Y', 'N')) ); COMMENT ON TABLE HNS_SUBSTANCE IS 'HNS물질정보 (1,316종)'; COMMENT ON COLUMN HNS_SUBSTANCE.SBST_SN IS '물질순번'; COMMENT ON COLUMN HNS_SUBSTANCE.ABBREVIATION IS '약자/제품명 (화물적부도 코드)'; COMMENT ON COLUMN HNS_SUBSTANCE.NM_KR IS '국문명'; COMMENT ON COLUMN HNS_SUBSTANCE.NM_EN IS '영문명'; COMMENT ON COLUMN HNS_SUBSTANCE.UN_NO IS 'UN번호 (위험물 식별번호)'; COMMENT ON COLUMN HNS_SUBSTANCE.CAS_NO IS 'CAS번호 (화학물질등록번호)'; COMMENT ON COLUMN HNS_SUBSTANCE.SEBC IS 'SEBC 거동분류 (G/GD/E/ED/FE/FED/F/FD/D/S/SD)'; COMMENT ON COLUMN HNS_SUBSTANCE.DATA IS '전체 상세 데이터 (JSONB)'; COMMENT ON COLUMN HNS_SUBSTANCE.USE_YN IS '사용여부 (Y:사용, N:미사용)'; COMMENT ON COLUMN HNS_SUBSTANCE.REG_DTM IS '등록일시'; -- 텍스트 검색 인덱스 (pg_trgm) CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_NM_KR ON HNS_SUBSTANCE USING GIN(NM_KR gin_trgm_ops); CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_NM_EN ON HNS_SUBSTANCE USING GIN(NM_EN gin_trgm_ops); CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_ABBR ON HNS_SUBSTANCE USING GIN(ABBREVIATION gin_trgm_ops); -- 코드 검색 인덱스 CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_UN ON HNS_SUBSTANCE(UN_NO); CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_CAS ON HNS_SUBSTANCE(CAS_NO); CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_SEBC ON HNS_SUBSTANCE(SEBC); -- JSONB 내 cargoCodes 검색용 인덱스 CREATE INDEX IF NOT EXISTS IDX_HNS_SBST_DATA ON HNS_SUBSTANCE USING GIN(DATA jsonb_path_ops);