[개발 공부]/[개발론 - 끄적거림]

[DB] PK를 sequence로 잡는 이유

wild keyboardist 2023. 5. 20. 16:16

[DB] PK를 sequence로 잡는 이유

 

 

 

 

 

DB 설계 시, PK (Primary Key) 를 잡는데 있어서 sequence 로 할 지,

아니면 비즈니스 상 유니크 키(주민등록번호 등)나, 여러 키의 조합인 복합키를 PK로 잡을지 고민될 때가 많다.

 

 

 

결론은 sequence 로 잡는게 더 깔끔하다는 것이다.

 

 

 

왜 그런가?

유니크 키나 복합키로 PK를 잡을 경우 몇가지 난감한 상황이 종종 발생할 수 있는데, 아래와 같은 문제가 생길 수 있다.

 

 

 

 

1) FK를 맺을 때 다른 테이블에도 복합키 전부를 가지고 있거나, 굳이 불필요한 중간 테이블을 하나 더 둬야하는 상황이 발생

2) 인덱스에 좋은 영향을 줄 수 없다

3) 만약 유니크한 조건이 변경된 경우, PK 전체를 수정해야 하는 끔찍한 일이 발생

 

 

 

 

 

주민등록번호나, 복합키 등 이런 것들은 차라리 유니크 키를 별도로 주자!