2011-10-17 2 views
0

기본 키가 정의 된 테이블 (post_id, category_id)이 있습니다.이 테이블은 Many_Many 관계를 구현합니다. 이 테이블에 autoincrement 필드를 추가하는 방법 (보통 auto_increment 필드를 사용하여 레코드를 쉽게 가져오고 auto_increment 값을 형식으로 사용). 내가 AUTO_INCREMENT 필드를 추가하려고 할 때이 오류가 :auto_increment 필드 및 테이블의 다른 기본 키

Multiple primary key defined 

난 복합 기본 키가있을 때 AUTO_INCREMENT 필드가 할 필요가? 그렇다면 어떻게해야합니까?

답변

0

post_id, category_id는 조인 테이블의 외래 키 여야합니다.

는 다음과 같아야합니다 : 테이블이 자동 증가 필드가

-------------- 
post_category 
============== 
pkId (pk) (auto increment) 
post_id (fk -> post table) 
category_id (fk-> category table) 
-------------- 
+0

에는 복합 기본 키 및 데이터베이스 에미 션 다이어그램이 있습니다 (http://www.yiiframework.com/doc/guide/1.1/en/database.arr).이 링크에는 http : // www가 있습니다. .yiiframework.com/forum/index.php?/topic/12637-please-explain-how-to-do-many-to-many-relationships-newcomer/ – user677900

+0

예. 하지만 당신은 그 테이블에 자동 증가 PK를 추가하고 싶지, 안 그래? – Kent

+0

이것이 제 질문입니다. autoincrement pk 또는 복합 pk? 만약 내가 yki 난 합성수지 – user677900

1

경우는 기본 키해야합니다. 기본 키는 하나만있을 수 있습니다.

PK를위한 자연스러운 후보인 필드에 고유 색인을 추가해야하므로 자동 증가는 만들지 않습니다.

자연스러운 PK가 부적절한 데이터 유형 (varchar 등)으로 구성되거나 PK가 바이트 단위로 커지거나 상당히 많은 수의 데이터를 포함하는 경우에만 auto_increment를 만들 수 있습니다. 튜토리얼 조인 테이블의 열

관련 문제