0

특정 국가에는 많은 볼거리 (기념물, 공원, 박물관)가 있으며 물론 많은 주에서 특정 시력이 존재한다고 가정 해보십시오.대용 키의 적절한 사용?

논리 ERD 모델의 측면에서 M : N 관계 사이의 접합 테이블을 사용해야합니다.

그러나 접합 테이블의 PK로 두 인접 테이블의 PK 만 사용하면 충분합니까?

즉, SIGHTS가 junction 테이블 인 COUNTRY, SIGHTS 및 SIGHT_TYPE 테이블이 있습니다. 특정 국가가 박물관을 여러 개 가질 수 있다고 가정하면 (즉, 박물관은 SIGHT_TYPE 임), SIGHTS 테이블의 각 레코드를 고유하게 식별 할 수 없다는 뜻입니까?

즉 MUSEUM의 SIGHT_TYPE_ID가 2이고 GERMANY의 country_id가 22라고 가정합니다. 여러 박물관의 경우 위의 내용이 사실 일 경우 발생하지 않습니까? 22 2 - 박물관 A 22 2 - 박물관 B

따라서 고유 식별자로 사용하려면 SIGHT_ID와 같은 대용 키를 사용해야합니다.

즉, 일반적으로 인접한 두 테이블의 PK 사용이 접합 테이블이나 복합 테이블의 PK로 사용되지만 이러한 예외가있는 경우가 있습니까?

당신에게 (FKS의 구성) 접합 테이블

답변

0

복합 키를 감사 논리적 설계 수준에서 완전히 확인합니다. 접합부 테이블의 행 고유성을 보장합니다. 또한 주어진 관계 인스턴스의 모든 참여자가 관계 인스턴스 하나에 만 참여하도록 보장합니다. 일종의 앱 빌더 도구를 사용하는 경우 해당 도구는 복합 PK를 처리 할 수 ​​있어야합니다.

일반적으로 제약 조건은 원하는 것입니다. 중계 상자에 여분의 열을 추가하여 기본 키 역할을하는 경우, 두 개의 외래 키에 고유 제한 조건을 추가하거나 잘못된 중복을 방지하기 위해 응용 프로그램에 의존해야합니다. 대부분의 경우, 이러한 솔루션은 좋지 않습니다.

실제 디자인 수준에서는 데이터로 수행 할 작업, 저장하려는 데이터의 양 및 특정 DBMS에 따라 다릅니다. 초기 디자인에서는 여분의 대리 키가없이 가고 비용보다 많은 비용을 절약하는 경우에만 추가하는 경향이 있습니다.