UNIQUE NULL
UNIQUE는 중복을 막지만 NULL 해석은 DBMS마다 다르다
업무 키가 반드시 하나여야 한다면 UNIQUE만으로는 부족할 수 있다. 값이 반드시 있어야 하면 NOT NULL을 함께 둔다.
실무 기준: 이메일처럼 필수 업무 키는
NOT NULL + UNIQUE로 선언한다.
| DBMS | UNIQUE 컬럼의 여러 NULL | 설계 판단 |
|---|---|---|
| Oracle | 허용 | NULL은 “아직 모름”으로 두고 중복 검사에서 제외된다 |
| MySQL | 허용 | 여러 NULL이 가능하므로 필수 업무 키에는 NOT NULL을 추가한다 |
| PostgreSQL | 허용 | 부분 유니크 인덱스로 조건부 유일성을 설계할 수 있다 |
| SQL Server | 일반 UNIQUE는 보통 1개만 허용 | 여러 NULL이 필요하면 필터드 유니크 인덱스를 검토한다 |
주의: DBMS를 바꾸면 “NULL도 중복인가?”라는 규칙이 달라질 수 있다. 마이그레이션 전 업무 키 정책을 먼저 확인한다.