집 >데이터 베이스 >MySQL 튜토리얼 >외래 키가 서로 다른 테이블의 여러 기본 키를 참조할 수 있습니까? 가장 좋은 대안은 무엇입니까?
교차 테이블 외래 키 참조
이 기사에서는 여러 다른 테이블의 기본 키를 참조하기 위해 한 테이블에 외래 키를 생성할 수 있는 가능성을 살펴봅니다. 특히, 질문자가 제시한 시나리오를 중심으로 진행됩니다.
장면해석
질문자는 두 개의 테이블, employees_ce
과 employees_sn
을 갖고 있으며 각 테이블에는 자체 기본 키 열이 있습니다. 또한 deductions
및 employees_ce
의 기본 키를 참조하기 위해 외래 키가 필요한 employees_sn
라는 세 번째 테이블도 있습니다. 제공된 예는 이러한 상황을 더욱 잘 보여줍니다.
<code>employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess</code>
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
솔루션
질문자의 목표는 기술적으로 달성 가능하지만 데이터베이스 설계에 있어 모범 사례는 아닙니다. 권장되는 방법은 두 테이블을 연결하는 중간 테이블을 정의하는 것입니다. 예를 들면 다음과 같습니다.
<code>employees ---------------- empid name employees_types --------------- empid type khce1 ce khsn1 sn</code>
이 설정을 사용하면 deductions
테이블에 employees
테이블의 empid
열을 참조하는 외래 키가 있어 세 테이블 간의 간단한 관계가 생성됩니다.
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
중간표 방식의 장점
중간 테이블 방식은 다음과 같은 장점을 제공합니다.
deductions
테이블을 변경하지 않고도 다른 직원 유형을 추가할 수 있어 유연성과 확장성이 가능합니다. 위 내용은 외래 키가 서로 다른 테이블의 여러 기본 키를 참조할 수 있습니까? 가장 좋은 대안은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!