자연키 vs 인조키

Question

PK를 설정할 때 어떤 값을 PK로 설정하는게 좋을까?
또 각각의 방법에 어떤 장단점이 있을까

자연키

실제 데이터 값을 말한다. 예를 들면 아이디가 고유할 경우 아이디를 회원 테이블의 PK로 사용할 수 있다.

장점

단점

인조키

값 그 자체로 의미 있는 값이 아닌 PK로의 역활을 위해 인위적으로 생성해낸 키를 말한다.
DB의 auto increment 혹은 UUID 등이 있다.

장점

단점

결론

자연키를 사용함으로써의 장점도 분명히 있지만, 대부분의 경우에서 인조키로 대체하는 것이 추후 DB설계 변경에과 규모 확장성에 있어서 좋다고 생각한다.
=> 인조키를 사용하자