이 예제는 일반적인 데이터베이스 설계 문제를 탐구합니다. 단일 테이블이 다른 여러 테이블에서 기본 키를 참조 해야하는 외국 키 관계를 만듭니다. 특정 시나리오에는 공제
테이블이 직원 _ce
및 직원 _sn
테이블 모두에 링크 해야하는 테이블이 포함됩니다.
질문은 공제
의 외국 키가 직원 _ce
직원 _sn
모두에서 기본 키를 직접 참조 할 수 있는지 여부입니다. 답은 표준 관계형 데이터베이스에서 직접적으로가 아닙니다. 단일 외국 키는 단일 기본 키 만 참조 할 수 있습니다.
제안 된 솔루션은 잘 구조화 된 상속 모델을 활용하여이를 해결합니다.
테이블 직원
, 직원 _ce
및 직원 _sn
는 상속 계층을 나타냅니다. 직원
은 직원 _ce
및 직원 _sn
가있는 기본 테이블입니다.
데이터베이스 구조 :
employees (id INT PRIMARY KEY, name VARCHAR(255))
employees_ce (id INT PRIMARY KEY, ce_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
employees_sn (id INT PRIMARY KEY, sn_specific_attribute VARCHAR(255), employee_id INT, FOREIGN KEY (employee_id) REFERENCES employees(id))
해결책:
직원 _ce 및
직원 _sn
공제 공제
테이블 모두에 대한 직접 링크 대신 공제
직원
deductions (id INT PRIMARY KEY, employee_id INT, deduction_amount DECIMAL(10,2), ..., FOREIGN KEY (employee_id) REFERENCES employees(id))
공제 (ID int 기본 키, Employee_id int, canfort_amount Decimal (10,2), ..., 외국 키 (Employee_id) 참조 직원 (ID))
이 접근법은 참조 무결성을 보장하고 중복성을 피합니다. Employee_id
에서 공제
는 직원의 직원 레코드에 대한 링크
직원 의 링크는 직원이
직원 _ce
직원 _sn 에 추가 정보를 가지고 있는지 여부에 관계없이
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3