2013-07-01 3 views
1

새로운 데이터베이스를 구성하고 있으며 임시 데이터가 포함 된 테이블이 몇 개 있습니다.임시 데이터가있는 MySQL 테이블 - 기본 키 포함?

예 : 사용자가 비밀번호를 변경하라는 요청 - 토큰이 저장되고 나중에 제거됩니다.

현재이 테이블에는 1부터 자동으로 증가하는 기본 키가 있습니다.

AUTO_INCREMENT = 1; 

이 기본 키는 실제로 사용되지 않습니다 ... 나는 결코 참조하지 않으며 더 커질 것입니다.

이와 같은 테이블에 기본 키가 있어야 하나 없습니까?

들으

+0

당신의 엔진은 무엇입니까? –

답변

0

짧은 답변 : 예.

긴 대답 : 당신이 당신의 테이블 가 클러스터 싶은 경우

당신은 당신은 기본 키의 어떤 종류의 필요, 뭔가에 조인 할 테이블이 필요합니다. 테이블 디자인에 기본 키가 필요하지 않은 경우 디자인을 다시 생각하십시오. 대부분 일 것입니다. 왜 동일한 기록을 유지합니까? MySQL에서는 InnoDB 스토리지 엔진이 이 명시 적으로 지정하지 않은 경우 항상 PRIMARY KEY를 생성하므로 사용자가 에 액세스 할 수없는 추가 열을 만듭니다.

PRIMARY KEY는 복합 요소 일 수 있습니다.

다 대다 링크 테이블이있는 경우 링크에 관련된 기본 필드에 PRIMARY KEY를 만듭니다. 따라서 하나의 링크를 설명하는 두 개 이상의 레코드가 이 아닌지 확인하십시오.

논리적 일관성 문제 외에도 대부분의 RDBMS 엔진은 이 고유 한 색인에 이러한 필드를 포함하는 것이 좋습니다.

PRIMARY KEY는 UNIQUE 색인을 생성하기 때문에 을 선언하고 논리적 일관성과 성능을 모두 얻어야합니다.

Here은 이미 동일한 논의가 있습니다.

일부 사람들은 여전히 ​​자신의 의견을 갖고 싶어합니다. 가봐 here

개인적인 견해는 고유 키를 식별하거나 행을 고유하게 만들어야한다는 것입니다. 논리는 프로그램 논리 일 수 있습니다. 자동 증가 또는 복합 또는 될 수있는대로 될 수 있습니다.