ENUM이 없는 경우

실무의 많은 개발자들이 사실 공통 코드 테이블을 사용할지 열거형 타입을 사용할지 고민한다. 함께 해답을 찾아가보자.

애플리케이션에서 공통 코드를 직접 사용하지 않는 경우

공통 코드가 단순히 화면 표시용으로만 사용된다고 해보자. 이런 경우에는 서버 애플리케이션에서 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);

비즈니스 로직중에 이런게 있을 수 있다.

등등..