2026/07/10 3

Ch01. 공통 코드 설계 - 그룹화 설계

그룹 코드와 상세 코드 분리공통 코드를 두 개의 테이블로 분리한다. 그룹을 관리하는 테이블과 상세 코드를 관리하는 테이블이다.DROP TABLE IF EXISTS common_code;DROP TABLE IF EXISTS common_code_detail;DROP TABLE IF EXISTS common_code_group;-- 그룹 코드 테이블CREATE TABLE common_code_group ( group_code VARCHAR(50) PRIMARY KEY, group_name VARCHAR(100) NOT NULL, description VARCHAR(500), use_yn CHAR(1) NOT NULL DEFAULT 'Y', created_at DATETIME NOT NULL DEFAULT C..

Ch01. 공통 코드 설계 - 공통 코드 테이블 설계

공통 코드의 단순 설계공통 코드 테이블에 필요한 최소한의 정보는 무엇일까? 코드값과 표시 이름이다.DROP TABLE IF EXISTS common_code;CREATE TABLE common_code ( code VARCHAR(50) PRIMARY KEY, name VARCHAR(100) NOT NULL);INSERT INTO common_code (code, name) VALUES('ORDER', '주문접수'),('PAID', '결제완료'),('SHIPPING', '배송중'),('DELIVERED', '배송완료'),('CANCEL','주문취소');SELECT * FROM common_code;"code"를 PK로 사용한다.Join 해서 결과 보기select o.order_id, o.order_..

Ch01. 공통 코드 설계 - 공통 코드가 필요한 이유

공통 코드가 필요한 이유?데이터베이스를 설계하다 보면 비슷한 종류의 데이터가 여러 테이블에 걸쳐 반복되는 상황을 자주 만난다. 예를 들어 주문 상태, 회원 등급, 결제 방법 같은 것들이다. 이런 데이터를 어떻게 관리해야 할까? 먼저 문제 상황부터 살펴보자. 문제 상황 - 하드코딩된 상태값쇼핑몰을 운영한다고 가정하자. 주문 테이블에는 주문 상태가 필요하다. 가장 단순한 방법은 상태값을 문자열로 직접 저장하는 것이다.DROP TABLE IF EXISTS orders;CREATE TABLE orders ( order_id BIGINT PRIMARY KEY AUTO_INCREMENT, member_id BIGINT NOT NULL, order_status VARCHAR(20) NOT NULL, total_amo..