실무의 많은 개발자들이 사실 공통 코드 테이블을 사용할지 열거형 타입을 사용할지 고민한다. 함께 해답을 찾아가보자.
공통 코드가 단순히 화면 표시용으로만 사용된다고 해보자. 이런 경우에는 서버 애플리케이션에서 CARD , BANK 같은 코드값을 직접 다루지 않는다. 단순히 DB에 저장하고 화면에 표시할때 이름으로 표현하는게 다임.
즉 코드에 따라 분기처리를 하거나 특별한 로직을 수행하지 않는다. 이런 경우에는 공통 코드 테이블만으로도 충분하다.
이제 고민해볼만 하다.
주문 상태 예시
주문 상태는 단순히 사용자에게 어떤 상태냐인지 디스플레이하는 것 뿐만 아니라, 비즈니스 로직에도 관여한다.
아래와 같은 주문 상태에 대한 공통 코드가 있다고 해보자.
-- ### 애플리케이션에서 공통 코드를 직접 사용하는 경우
-- 주문 상태 코드
INSERT INTO common_code_detail (group_code, code, name, sort_order) VALUES
('ORDER_STATUS', 'ORDER', '주문접수', 1),
('ORDER_STATUS', 'PAID', '결제완료', 2),
('ORDER_STATUS', 'SHIPPING', '배송중', 3),
('ORDER_STATUS', 'DELIVERED', '배송완료', 4),
('ORDER_STATUS', 'CANCEL', '주문취소', 5);
비즈니스 로직중에 이런게 있을 수 있다.
등등..