개요
상태, 유형, 타입, 등급 등의 들어갈 수 있는 값에 제한이 있는 필드들에 대해서 추가적인 참조 테이블 설계가 필요할지, 아니면 Enum 값 정도로 괜찮을지에 대한 장단 비교, 기준 등
Enum 사용시 장단점
장점
- 추가적인 테이블이 필요 없다.
- 조인이 불필요하여 조회 속도가 빠르다.
단점
- Enum 값들에 연관된 추가적인 값들을 저장이 불가 (ex. 등급 이란 개념의 추가 필드, eng_name 등등)
- Enum 값의 변경시 코드 등도 직접 수정되어야 함 (변경시 비용이 큼)
참조 테이블로 설계시 장단점
장점
- 해당 테이블 개념에 부가적인 개념등을 테이블의 필드로 자유롭게 추가 가능하다.
- 제한된 값이 늘어날 때, 추가에 유연하다.
단점
- 조인이 발생하여, 조회 속도가 저하될 수 있다.
결론
핵심 기준은 유연성, 향후 변화가 자주 발생할 경우에는 테이블이 적절하고, 변화가 비교적 적다면 Enum 필드로 효율을 챙기는 것이 좋은 방향이라고 생각.
'소프트웨어 개발자 > 좋은 API, DB 설계하기' 카테고리의 다른 글
[좋은 DB 설계하기] 수치형 필드 설계하기 (0) | 2024.09.29 |
---|---|
[좋은 DB 설계하기] 설계시 고려하면 좋을 기본 개념들 (0) | 2024.08.15 |
[좋은 DB 설계하기] 테이블 명 설계 비교 (_log, _results, _history) (0) | 2024.06.30 |
[좋은 API 설계하기] API 응답 시 모든 상태코드 200 고정 (0) | 2024.04.21 |
[좋은 API 설계하기] API 버전 정책 (feat. 토스페이먼츠) (0) | 2024.01.31 |