PR-A 베이스라인 사전 작업. 후속 백엔드/프론트 PR 의 의존성.
DDL (400_mbom.sql):
- mbom_header (21 cols) — PK objid varchar(64), UNIQUE mbom_no
FK source_ebom_objid → part_bom_report.objid (SET NULL)
FK source_mbom_objid → mbom_header.objid (SET NULL, self)
- mbom_detail (47 cols) — PK objid varchar(64)
FK mbom_header_objid → mbom_header.objid (CASCADE)
FK part_objid → part_mng.objid (SET NULL)
- 인덱스 11개 (project/source/status/header/parent/part 등)
운영DB vs RPS 타입 함정 정정:
- 운영 part_mng.objid varchar(64) → RPS bigint (feedback_createobjid_pattern.md)
- mbom_detail.part_objid 도 bigint 로 통일해 FK 호환
- numeric/varchar 모두 bigint 와 FK 불가 — 정확한 타입 매칭 필요
운영 sample 이관 (01_mbom_sync.sql):
- mbom_header 3 / mbom_detail 95 → RPS 전이
- staging 테이블 패턴 (LIKE INCLUDING DEFAULTS, FK·PK 제거)
- FK 매칭 안 되는 source_ebom_objid / part_objid 는 NULL 처리
- mbom_header 에 없는 mbom_header_objid 행은 DELETE (orphan 방지)
- part_objid varchar(64) → bigint 형변환 (운영 String.hashCode 결과)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>