2017-12-03 6 views
1

많은 관계가있는 2 개의 테이블이 있습니다. 그래서 세 번째 테이블을 함께 사용하여 두 개의 테이블을 매핑합니다. 그리고 자동 증가, 정수 기본 키 중 하나를 선택한 다음 다른 인덱스에 고유 인덱스를 두거나 기본 키를 사용하는 것이 많은 값을 갖는 것 중에서 무엇을 선택해야하는지 모르겠습니다. 각 방법의 이점은 무엇입니까? 인덱스 기본 키가있는 고유 열과 키 중 많은 값을 선택할 수 있습니까?

는 PRIMARY KEY 제약 및 비 - 널 (NULL) 컬럼에 UNIQUE 제약 조건 사이에 유의 한 차이가없는 Microsoft SQL Server 데이터베이스에서 많은

답변

0

감사드립니다. PRIMARY KEY는 본질적으로 통사론적인 설탕입니다. 컨벤션 및 개인 선호는 PRIMARY KEY 제약 조건을 사용하는 가장 일반적인 이유입니다.

어떤 DBMS에서 실제로 중요한 것은 사용자가 가지고있는 키와 사용 방법이 아닌 "기본"으로 지정하는 키입니다.

0

이론적으로 데이터 모델링의에서 두 솔루션 모두 정확합니다.

실제로 : 두 번째 해결 방법을 사용하는 것이 좋습니다.
새로운 자동 증가 ID를 가져 와서이를 기본 키로 설정하고 두 개의 전송 된 외래 키를 고유 (함께)로 설정하십시오.

장점 : 데이터의
중복 : 우리가 명명 된 두 개의 테이블이 있고 B와 AB는 (때문에 다 대다 관계의) 새로운 생성 된 중간 테이블을 것으로 가정합니다.
AB가 C와 새로운 관계 (일대 다)를 갖는 경우 AB의 Primary-Key를 C에 외래 키로 전송해야합니다. 따라서 두 속성 대신 ID를 변환하는 것이 좋습니다. C가 D와의 새로운 관계 (일대 다)를 갖는 경우에도 마찬가지입니다.

단점 : ID를-
액세스 성능 : 최초의 솔루션에 중복이 있지만, 어떤 조인을 사용하지 않고 액세스 ID에 성능이 있지만. (표 C에서 A 및 B ID에 액세스하려고한다고 가정합니다.) 에 액세스하려면 에만을 ID에 액세스하지 않는 것이 좋습니다.