식별자 설계

키 선택 의사결정표

키는 유일하기만 하면 끝이 아니다. 변경 가능성, 노출 위험, 조인 비용, 분산 생성 가능성까지 함께 본다.

회원
대리키 + 이메일 UNIQUE 이메일은 바뀔 수 있으므로 user_id로 내부 관계를 잡는다.
업무 키는 제약으로 보호
수강 신청
학생ID + 과목ID 복합키 후보 같은 학생이 같은 과목을 한 번만 신청한다는 규칙을 직접 표현한다.
연결 테이블에 적합
주문
대리키 또는 시간 정렬 ID 주문번호 노출 정책, 정렬 요구, 분산 생성을 함께 결정한다.
예측 가능성 한계
외부 연동
외부 ID를 UNIQUE로 보관 외부 시스템 식별자는 내부 PK로 삼기보다 매핑 키로 관리한다.
연동 변경 대비

변경 가능성 · 인덱스 크기 · 노출 정책 점검

변경 가능성 업무 값이 바뀔 수 있으면 기본키보다 UNIQUE 후보가 안전하다.
인덱스 크기 긴 문자열 키는 보조 인덱스와 조인 비용을 키울 수 있다.
노출 정책 URL에 그대로 드러낼 키라면 추측 가능성과 개인정보성을 따진다.