2012-06-18 2 views
1

예를 들어 programs이라는 테이블과 format이라는 테이블이 있습니다. format 테이블에는 format이라는 단일 열이 포함되어 있으며 세 가지 값인 zip, rar 및 exe가 있습니다. 형식 테이블에 기본 키가 있어야합니까?하나의 열만있는 테이블에 기본 키가 있어야합니까?

+2

어떻게 그 테이블을 사용합니까? – Thilo

+0

에는 응용 프로그램이라는 다른 테이블과 서식을 지정할 외래 키가 있습니다. – user1461607

답변

0

값이 고유하면 아마도 그렇지 않습니다. 그러나 값에 고유 색인이없는 경우 중복이있을 수 있으며 이는 단일 행을 식별하기 어렵게 만듭니다. 또한 알려진 고정 길이 (예 : 정수 ID)의 PK를 사용하면 성능을 높이고 색인 분할을 유지할 수 있습니다. 또한이 테이블에 조인해야하는 경우 외래 키 (일부 RDBMS에서는 PK가 필요함)를 사용하여 값이 아닌 형식의 ID를 참조하는 것이 좋습니다. 당신이 표는 Programs을 불러 테이블 값의 무리와 함께 Format를 호출 한 경우

0

, 왜 그냥 Program 테이블에 FormatId 열이 있고 Format 테이블에 (현재 3 개) 외래 키 값 중 하나를 사용하지?

정상화에 대한 내용은 http://en.wikipedia.org/wiki/Database_normalization을 참조하십시오 (이 사실을 알고 계실지 모르지만 질문을 읽는 다른 사람이 아닐 수도 있음).

0

하나의 열만있는 테이블은 반복되는 값으로 대부분의 경우 고유 한 값을 가지며 단일 열의 값도 의미가 없습니다.

따라서, 귀하의 경우에, 그것은 해당 필드에 색인을 부과) 형식이 (내가 무슨 생각을 먹으 렴) 반복되지 않을 것이다, 그래서 기본 키하지만

1 제작에 전혀 해가없는 (당신이 원하는 할 나중에이 테이블을 다른 테이블에 연결하려는 경우이를 기본 키로 사용하고 기본 키의 format_id와 같은 것을 사용하지 않도록하십시오. 그렇게한다면 지금은 기본 키로 사용하지 마십시오.

+0

내가 그걸 유일하게 만들어야합니까? 내가 다른 테이블에 외국 키잉 것입니다 – user1461607

3

은 테이블에 포함 할 경우 발생하는 생각 :

zip 
rar 
exe 
exe 

당신이 다음 테이블에 PK를 필요로하지 않는 문제를 볼 경우.

+0

두 exe와 문제가 보이지 않는다 – user1461607

+3

하지만 당신은 두 exe 데에 값을 볼 수 있습니까? – Thilo

관련 문제