PrimaryKey
는 varchar
보다 int
로 설정하는 게 좋습니다.References에 나열한 링크들에서 설명하는 이유들은 다음과 같습니다.
varchar
는 white space
를 값으로 가질 수 있기 때문입니다.A
와 A
를 다르게 구분해 두 값을 모두 PK로 지정할 수 있습니다.A
의 PK가 두 개 존재한다고 착각할 수 있습니다.PK
는 해당 행의 identity를 나타내기 때문에 변하지 않는 게 좋기 때문입니다. int
보다 varchar
가 좋은 이유보다는 varchar를 PK로 사용하지 않는 이유
에 가깝습니다. varchar
로 선언하는 변수는 대부분 현실 세계에 존재하는 무언가에 대응되는 것들이며, 이들은 언젠가 변하게 될 가능성이 큽니다.email(varchar로 선언하는 값)
은 일반적으로 중복이 없는 값이지만 변경요청에 의해 때때로 변하기도 하기 때문에 PK로 선언하는걸 지양해야 합니다.int
가 varchar
보다 join시 연산속도가 더 뛰어나기 때문입니다.int
가 아니니깐 PK
로 적합하지 않은거 아닐까?int
로 PK
를 설정하는 것에 비해 성능이 떨어지겠지만 uuid는 연속적이지 않아 보안측면에서 우수하며
, 중복된 값이 거의 나오지 않는다
는 명확한 장점이 존재하기 때문에 PK
로 사용하는 경우가 많습니다.uuid(중복이 절대 발생하면 안되는 경우)
혹은 int값의 PK(성능이 중요한 경우)
를 선택해 사용하면 됩니다.