2011-12-10 3 views
0

저는 매우 중요한 주립 대학의 데이터베이스를 구축하고 있습니다. 지금까지 기본 키 열에 대해서는 종종 int32 또는 int64와 같은 숫자를 사용하고 때로는 char을 사용했지만 여전히 숫자 문자 만 저장했습니다. 이것은 매우 중요한 작업이므로 성능과 편리함을 모두 효율적으로 만들어야합니다. 이제는 char 열의 값이 여전히 숫자 문자로 간주되므로 PK 열에 숫자 또는 char을 사용하는 것이 어떤 차이가 있는지 알고 싶습니다.기본 키 열의 숫자 또는 문자

P.S. 어쨌든 숫자 문자를 저장하면 요점은 char를 사용하는 것이 궁금 할 수 있습니다. 이유는 PK 열이 국가에 대해 3 자, 주에 대해 3 자, 도시에 대해 3 자 및 사람에 대해 6 자와 같은 많은 부분으로 구성되기 때문입니다. 그 외에도 명시 적 변환에 대해 걱정하지 않고도 해당 열에 대해 문자열 연산을 수행 할 수 있습니다. (오라클에서는 암시 적 변환이 있음을 알고 있지만 사용하지 않는 것이 좋습니다.)

+2

왜 숫자를 저장하기 위해 char 열을 사용하겠습니까? 숫자 열을 사용하는 것이 훨씬 효율적이고 유연합니다. – Joe

답변

6

마찬가지입니다. 기본 키는 대리자 여야합니다. Int 또는 큰 int, 스케일링 문제가 될 경우 Guid. 그러면 국가, 주, 도시 및 사람이 고유 한 복합 키로 있어야합니다. '지능형'숫자는 거의 좋은 아이디어가 아닙니다.

+0

고마워요, 토니. 네가 제안한대로 대리모를 사용할 것 같아. –

2

기본 키에 일반적으로 사용되는 정수 데이터 유형 varchar보다 데이터 색인화 성능 문자 조합과 같은 다른 고유 키가 필요하면 고유로 표시된 기본 키 옆에 추가 할 수 있습니다.

나에게 정수 또는 GUID와 같은 기본 키에 일반 데이터를 사용하는 또 다른 중요한 이유는 유연성입니다. 예를 들어 전자 메일 주소를 사용자 테이블의 기본 키로 사용할 수 있습니다. 며칠 후, 한 사용자가 두 개 이상의 전자 메일 주소를 가질 수있는 응용 프로그램 규칙을 변경해야 할 때가 있습니다. 데이터 구조를 변경하는 것이 더 어려워 질 것입니다.

관련 문제