2012-11-22 3 views
3

나는 간단한 데이터베이스를 가지고 있으며 두 테이블 간의 관계를 만들고 있습니다. 그래서 나는 그들이 연결된 세 번째 테이블을 가지고 있습니다. 세 번째 테이블에 기본 키가 필요합니까? 내가 필요한 것은 두 테이블을 서로 연결하고 다른 열을 다른 것으로 연결하기 위해서입니다.외래 키가 2 개 있고 기본 키가 없습니까?

+0

기본 키가 있어야하지만 두 외래 키가 복합 기본 키를 구성 할 수 있습니다. –

+0

일반적으로 "기본 키가 있어야합니다."-하지만 가지고 있어야합니다! (@Lyuben Todorov) – DRobinson

+0

나는 사실 그것에 대해 그것에 대해 큰 사랑스러운 논쟁이었다. @DRobinson [우리는 기본 키가 있어야합니다] (http://stackoverflow.com/questions/840162/should-each-and-every-table-have-a-primary-key) 특별한 특별한 경우에 해당하지 않는 한 . –

답변

3

설명하는 테이블 종류는 join table이라고도합니다. 독창성과 성능 향상을 위해 인덱싱 될 가능성이 높기 때문에 합류하는 열 전체에 기본 키를 만들 수 있습니다.

+0

두 개의 외래 키가 고유합니다. – Tom

+0

물론 외래 키는 개별 테이블에서 기본 키로 간주되기 때문에 고유합니다. 그러나 두 열의 고유성 제약은 중복 된 행이 없음을 의미합니다 조인 테이블에서. –

+0

이 테이블 조인은 열차 노선을 운영하는 회사와 함께 말할 수 있습니다. 이 tabl은 각 회사의 비율과 그들이 실행하는 열차의 수를 보여주고 있다고 가정합니다. 예를 들어 Route A - 기차의 50 %를 실행하는 compaby X가 실행합니다. 여기를 보시면 관계가 있습니다 http://stackoverflow.com/questions/13500200/creating-relational-database – Tom

3

설명하는 것은 접합 테이블입니다. 예, 기본 키없이 하나를 만들 수 있습니다 (또는 다른 옵션은 복합 기본 키입니다 - 두 개의 참조를 고유 한 쌍으로 만들고이를 고유 식별 키로 사용함). 그러나 이것도 필요하지 않습니다 (참고 : "필수적이지 않다"라는 말은 "좋은 습관"이 아니라는 의미가 아니라, 동일한 내용으로 여러 행을 갖는 것이 일반적으로 좋지 않습니다.

이러한 용어를 사용하면 구현에 필요한 답변을 찾을 수 있습니다.

관련 문제