2009-12-03 2 views

답변

9

달라질 수 있습니다.

  • 당신이 더 많은 개체의 집합으로 데이터를보고, 아니면 사실의 집합으로 표현하고 관계 대수에서 기본적으로 분석 (관계형 데이터베이스 단지 저장 매체입니다).

  • 일부 ORM/프레임 워크/도구는 다중 열 기본 키를 제대로 지원하지 않습니다. 그 중 하나를 사용하는 경우 추가 ID 열이 필요합니다.

  • 그것과 관련된 추가 데이터 만 대다 관계의 경우, 가 추가 ID 열을 피하고 기본 키 두 열을 가지고하는 것이 좋습니다.

  • 이 연결에 몇 가지 추가 정보를 추가하려는 경우 두 엔터티보다 많은 다 대 다 관계가됩니다. 그래서 자신의 엔티티가되고 자신이 만든 엔티티가 연결된 엔티티와 독립적으로 인 경우 더 편리합니다.

+0

+1 모든 기지를 포함합니다. – APC

1

나는 프라이 머리 키 category_id와 product_id를 만들 것이다. 나중에 주문할 때 순서가 관련성이없는 경우에만 자동 증가를 추가하십시오.

2

아니요,이 두 열이 이미 기본 키의 기능을 실행 중이면 아니요, 전혀 필요하지 않습니다.

이 세 번째 열은 테이블에 공간을 추가하기 만하면됩니다.

하지만 ... 아마도 테이블에 추가 된 레코드의 순서를 볼 수 있습니다. 이것이이 칼럼에서 볼 수있는 유일한 기능입니다.

2

자동 증가 색인 열을 추가 할 필요가 없습니다. 표준 연습은 설명하는 것처럼 M : M 연관 테이블의 기본 키로 두 개의 기존 열만 사용하는 것입니다.

5

당신은 추가, 자동 증가 인덱스 열을 추가 필요하지 않습니다,하지만 난 (대부분의 다른 사람에게 아마 반대는) 아직 당신이 할 것을 권장합니다. 첫째, 응용 프로그램에서 단일 행을 참조하는 것이 더 쉽습니다 (예 : 행을 삭제할 때). 둘째로, 행이 추가 된 순서를 알 수있는 것이 유용 할 때도 있습니다.

+0

자동 숫자 기능을 사용하여 행에 자연 순서를 적용하지 마십시오.autonumber의 구현자는이 상관 관계를 깨는 알고리즘을 자유롭게 구현할 수 있습니다. –

0

개념적 질문 - products_categories는 엔티티입니까? 아니면 단순히 두 엔티티 간의 관계를 나타내는 테이블입니까? 그것이 엔티티라면 추가적인 속성이 없더라도 엔티티에 대한 별도의 ID 열을 주창하고 싶습니다. 관계가 있다면 추가 속성 (예 : begin_date, end_date 등)이있는 경우 다중 열 기본 키를 사용하도록 권유합니다.

관련 문제