2분
핵심 관계 목록 v1
관계·속성·제약 설계
핵심 관계 목록 v1
관계·속성·제약 설계 > 관계·속성·제약 설계
학습 목표
- 8기둥을 가로지르는 주요 관계 30선을 파악한다
- 역할 패턴이 관계로 구현되는 방식을 이해한다
핵심 관계 목록 v1
8기둥을 가로지르는 주요 관계들입니다. 전체 목록은 스펙 문서에 담고, 여기서는 골격 30선을 봅니다.
정체성·소속 축
(Vessel)-[:OPERATED_BY]->(Carrier) // PL-09
(TerminalOperator)-[:OPERATES {from,to}]->(Terminal) // 논쟁① 결론, 유효기간
(Terminal)-[:PART_OF]->(Port) // PL-08
(Berth)-[:BELONGS_TO]->(Terminal) // PL-03
(YardSlot)-[:WITHIN]->(YardBlock)-[:WITHIN]->(Yard)-[:WITHIN]->(Terminal)
(Equipment)-[:ASSIGNED_TO {from,to}]->(Terminal) // AN-03, 유효기간기항 허브 축 — PortCall 이 그랜드 센트럴
(Vessel)-[:MAKES_CALL]->(PortCall)-[:AT_PORT]->(Port) // PL-01
(PortCall)-[:ALLOCATED_TO]->(Berth) // PL-02·03
(PortCallEvent)-[:PART_OF_CALL]->(PortCall) // PL-04
(PilotageEvent)-[:PERFORMED_BY]->(Pilot) // OP-13
(PortCall)-[:PRECEDED_BY]->(PortCall) // 항차 내 순서, PL-01
(Declaration)-[:CONCERNS]->(PortCall) // CO-01, AN-10화물 흐름 축
(Container)-[:CARRIED_ON]->(Vessel) // 구간별 이벤트로 시각화 (다음 과제)
(Container)-[:CONTAINS]->(Cargo) // 논쟁③, LCL 대응 다대다
(Container)-[:LOCATED_AT]->(YardSlot|Berth|Gate…) // OP-01, 현재 위치
(CargoOperationEvent)-[:HANDLES]->(Container) // OP-08·09
(CargoOperationEvent)-[:USING]->(QuayCrane) // OP-08, TIC 4.0 Move 귀속
(TransshipmentEvent)-[:FROM_VESSEL]->(Vessel), [:TO_VESSEL]->(Vessel) // OP-10
(GateTransaction)-[:MOVES]->(Container), [:BY_TRUCK]->(Truck) // OP-07
(DeliveryOrder)-[:AUTHORIZES]->(GateTransaction) // OP-06
(Manifest)-[:DECLARES]->(Cargo) // CO-08
(BillOfLading)-[:COVERS]->(Cargo), [:SHIPPER|CONSIGNEE]->(CargoOwner) // 역할 패턴규칙·지표 축
(SegregationRule)-[:APPLIES_TO]->(DangerousGoods 분류) // CO-02
(Metric)-[:MEASURES]->(Terminal|Carrier|Berth…), [:FOR_PERIOD]->(기간) // PL-05·09역할 패턴의 실전형
앞 모듈에서 예고한 역할 패턴이 B/L 관계에 있습니다. CargoOwner라는 클래스는 하나지만, SHIPPER 관계로 연결되면 송하인, CONSIGNEE 관계로 연결되면 수하인입니다.
핵심은 이겁니다 — 회사 노드는 중복 생성되지 않습니다. 같은 회사를 역할마다 따로 만들면 AN-09(같은 실체인데 식별자가 다른 레코드 탐지)가 애초에 불가능해집니다. 개체 해소의 전제가 여기서 만들어집니다.