DB 컬럼 타입 제약 정책 선택
상태
승인
후보군
| 방안 | 설명 |
|---|---|
| FK·ENUM·BOOLEAN 미사용 | FK 없이 앱 레벨 관리, 상태/방향은 VARCHAR, 날짜는 DATETIME(6) |
| DB 수준 FK·ENUM·BOOLEAN 사용 | DB 무결성을 DB 제약으로 보장 |
결정
FK 컬럼 없이 애플리케이션이 참조를 관리하고, 상태/방향은 VARCHAR, 날짜는 DATETIME(6)을 사용한다.
결정 이유
- DB 스키마 컨벤션상 FK·ENUM 타입·BOOLEAN을 지양한다.
- FK 제거로 테이블 간 의존성을 낮춰 마이그레이션·샤딩이 용이하다.
- VARCHAR 상태값은 Enum 추가 시 DDL 변경 없이 애플리케이션만 수정하면 된다.
DATETIME(6)으로 마이크로초 정밀도를 확보한다.
검토 대안
| 방안 | 기각 이유 |
|---|---|
| DB 수준 FK·ENUM·BOOLEAN 사용 | 스키마 컨벤션 위반, ENUM 변경 시 DDL ALTER 필요, BOOLEAN 이식성 낮음 |
트레이드 오프
- 득: DB 이식성·하위 호환 용이, 마이그레이션 단순, Enum 확장 자유
- 실: 참조 무결성은 애플리케이션 책임으로 전가, DB 레벨 검증 부재