5da94213ec
안전 자료실 plan safety-library-1 A-1 (r3 계약 반영): - documents 3컬럼 (TEXT+CHECK, nullable additive) + law→jurisdiction NOT NULL 구조 강제 - legal_acts 단일 레지스트리(워치리스트 겸, watermark·repeal_detected_at 포함) - legal_meta 최소형 (version_key 합성형 UNIQUE, 전 버전 pending 적재 계약) - partial 인덱스 2 + family 인덱스 + paper DOI partial UNIQUE (doi=서지 단일 보유 계약) - ephemeral PG16 스모크: 12파일 적용 + CHECK/UNIQUE 계약 6종 검증 PASS Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
23 lines
1.4 KiB
SQL
23 lines
1.4 KiB
SQL
-- 346_legal_acts_table.sql
|
|
-- 안전 자료실 A-1 (7/12) — 법령 레지스트리 = 워치리스트 (news_sources 패턴의 법령판).
|
|
-- plan: safety-library-1 0-2. statute_watchlist 별도 테이블 안 만듦 (R2 blocker — 이중 정의 해소, watermark 흡수).
|
|
-- KOSHA GUIDE / KGS Code 는 비대상 (guide=비법령, KGS=watch-폴더 단독 트랙 R3-M5).
|
|
-- 시드 = B-1 PR① (레거시 law_monitor 26개 superset, watch=true 전부 — R3-B1).
|
|
-- repeal_detected_at: 어댑터(코어)는 폐지 감지 마킹만, 전이는 일일 잡 단일 지점 (R3-M3).
|
|
CREATE TABLE IF NOT EXISTS legal_acts (
|
|
family_id TEXT PRIMARY KEY,
|
|
jurisdiction TEXT NOT NULL CHECK (jurisdiction IN ('KR', 'US', 'EU', 'JP', 'GB', 'INT')),
|
|
law_level TEXT NOT NULL CHECK (law_level IN ('statute', 'decree', 'rule', 'admin_rule', 'code')),
|
|
title TEXT NOT NULL,
|
|
title_ko TEXT,
|
|
parent_family_id TEXT REFERENCES legal_acts(family_id),
|
|
native_id TEXT NOT NULL,
|
|
source_api TEXT NOT NULL,
|
|
watch BOOLEAN NOT NULL DEFAULT TRUE,
|
|
poll_cycle TEXT NOT NULL DEFAULT 'daily' CHECK (poll_cycle IN ('daily', 'weekly', 'monthly', 'quarterly')),
|
|
watermark TEXT,
|
|
repeal_detected_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|