나는 여러 개의 테이블 : company
, customer
, company_has_customer
및 transaction
이 있습니다.MySQL 접합 테이블 외래 키
company_has_customer
은 company
및 customer
의 PK를 PK로 사용하는 다 대다 접합 테이블입니다.
데이터베이스의 거의 모든 상황에서 company
과 customer
은 레코드를 식별하는 데 사용됩니다 (예 : transaction
표).
내 질문은 company_has_customer
또는 두 테이블 (company
, customer
)을 개별적으로 가리 키도록 transaction
테이블에서 외래 키를 생성해야하는지 여부입니다.
회사와 고객간에 관계가있는 경우에만 transaction
레코드가 삽입되도록하려면 참조 무결성이 company_has_customer
을 통해 해당 FK를 보내는 것이 가장 좋습니다. 내 직감을 지원하는 기준이나 규칙이 있습니까?
이렇게 독창적 인 디자인 토론에는 적합하지 않습니다. – Barmar
Barmar에게 감사 드린다. 나는이 상황에서 베스트 프랙티스를 찾고 있지만 강한 성향이있다. –
아마도 dba.stackexchange.com에서 더 나은 행운을 누릴 수 있습니다. – Barmar