세부 엔티티 DetailB가있는 마스터 엔티티 MasterA가 있습니다. DetailB에 외래 키가있는 별도의 엔티티 DetailC가 있습니다.정규화 및 관계
내 쿼리에서 나는 많은 DetailC 목록을 쿼리하지만 MasterA와 관련하여 DetailC를 쿼리해야합니다. 이 경우 쿼리 속도를 높이려면 DetailC와 MasterA간에 외래 키 관계를 만드는 것이 좋습니다. (DetailB로 조인하는 것보다). 응용 프로그램 계층에서 DetailC의 FK가 (DetailB에 지정된 것과) 동기화되어 있는지 확인합니다. 감사합니다.
저는 처음부터 DetailB에있는 외래 키가 왜 있는지 궁금합니다. 내 작업의 예제를 사용하려면 공급 업체 (MasterA)의 납품서에 납품 된 부품에 대한 라인 (DetailB)이 포함되어 있습니다. 각 부분에는 여러 줄의 사양 (DetailC)이 있습니다. 어떤 사양이 어떤 순서 (예 : DetailC 및 MasterA)에서 왔는지 묻는 데이터베이스를 쿼리 할 수 있지만 데이터 *는 DetailB를 통과해야합니다. MasterA와 DetailC 사이의 직접 연결은 의미가 없습니다. –
답장을 보내 주셔서 감사합니다. 나는 그 관계가 의미가있는 경우가 있다고 생각합니다. 모든 납품서 라인에 대해 구매 주문서를 작성할 수 있도록 예제를 확장합니다. 구매 주문서가 납품서 노트 라인에 연결되는 이유는 납품서에 다음과 같은 라인이 포함될 수 있기 때문입니다 (공급 업체를 거치지 않아도됩니다) –
구매 주문 라인이 납품 노트 라인에 연결되는 이유는 납품 노트에 배송지가 주문과 직접 연결된 경우 한 주문에 대해서만 메모를 생성 할 수 있습니다. –