더북(TheBook)

텍스트 기반 컬럼을 기본키로 사용하는 이유는 중복 값 입력을 막을 수 있기 때문이라는 의견이 일반적이다. 예를 들어 CompanyName을 기본키로 만든다면 회사 이름은 중복되지 않아야 한다. 하지만 Customers 테이블의 CompanyName에 유일 인덱스를 추가해 이름이 중복되지 않게 하는 것이 더 쉽다. 이렇게 하면 무결성을 확보하면서 여전히 자동 생성된 숫자 값을 기본키로 사용할 수 있다. 여기에 ‘BETTER WAY 2. 중복으로 저장된 데이터 항목을 제거하자’와 ‘BETTER WAY 4. 컬럼당 하나의 특성만 저장하자’에서 권고하는 내용을 적용한다면 더욱 잘 작동할 것이고, 그림 1-1에서 지적한 문제점을 피하는 데도 도움이 된다. 반면에 텍스트 기반 기본키를 사용하면 숫자키로 연결된 값(그림 1-2에서 CompanyName)을 가져오려고 참조 테이블과 조인할 필요가 없으므로 SQL 문이 좀 더 간략하다.

기본키로 숫자가 나은지 텍스트 기반이 나은지는 데이터베이스 전문가 사이에서도 큰 이견이 있다. 책에서는 이런 논쟁에서 어느 한쪽만 편을 들지는 않을 것이다. 핵심은 기본키로 사용하는 컬럼은 반드시 유일한 값을 가져야 한다는 점이기 때문이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.