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