데이터베이스 (Django + PostgreSQL)에 Inventory
테이블을 디자인하려고하는데 다른 테이블과의 다형성 관계를 구현하는 데 가장 올바른 방법이 무엇인지 의심스러워졌습니다. 테이블.인벤토리 데이터베이스에서 다형성 연결 구현
기본적으로 각 항목에는 테이블의 외래 키 여야합니다. 또는 그것은 생산/제조되었을 수 있습니다 (즉, ProductionOrder
). 마찬가지로 output
도 있습니다. 예를 들어 SalesOrder
(제품이 판매 된 경우) 또는 ProductionOrder
(다른 것을 제조하는 데 사용되는 경우)을 참조 할 수 있습니다.
물론 하나의 외래 키 필드는 다른 테이블의 항목을 참조 할 수 없으므로이를 달성하는 가장 좋은 방법은 무엇입니까? 비슷한 질문에 대한 답변을 읽었지만 제안은 이와 같은 경우에는 적합하지 않은 것으로 보입니다. 중간 테이블을 만드는 것은 판매 및 생산 주문이 적어도 "수퍼 셋"에 속하지 않으므로 적절하지 않습니다.
현재로서는 입력 및 출력 모두 가능한 많은 필드 (예 : idProductionOrder
, idSalesOrder
)를 사용하고 두 필드가 동시에 데이터를 포함하지 않도록 -NAND- 제약 조건을 추가하는 것이 좋습니다. 나는 이것이 실제적인 해결책이 될 수 있지만, 아마도 아주 깔끔한 해결책은 아닐 것이라고 본다. 더 나은 접근 방법이 있습니까?