DDL로 뼈대를 만든다
CREATE, ALTER, DROP, TRUNCATE는 데이터가 아니라 구조 자체를 다룹니다.
CREATE TABLE 한 문장은 단순한 생성 명령이 아니라 앞으로 저장될 값의 모양, 검증 방식, 변경 난이도까지 함께 고정하는 설계 문서입니다.
CREATE, ALTER, DROP, TRUNCATE는 데이터가 아니라 구조 자체를 다룹니다.
정수, 금액, 문자열, 날짜/시간은 정확도와 저장 공간을 함께 결정합니다.
PK, FK, NOT NULL, CHECK는 앱 실수와 중복 데이터를 DB 단계에서 줄입니다.
ALTER, DROP, TRUNCATE는 DBMS별 잠금과 트랜잭션 동작을 확인하고 실행합니다.
임시 테이블, CTAS, 시퀀스는 처리 흐름을 빠르게 만들지만 제약 복사는 따로 봅니다.
주문은 회원, 주문 상세, 상품으로 나뉘고, 주문 당시 단가는 order_items.unit_price에 남겨 가격 변경 영향을 막습니다.
한 회원은 여러 주문을 만들 수 있고, 주문은 반드시 한 회원을 참조합니다.
한 주문은 여러 상품 라인을 가지며, 주문 삭제 시 상세도 함께 정리됩니다.
한 상품은 여러 주문 상세에서 참조되고, 상세에는 주문 당시 단가가 남습니다.
UNIQUE CHECK ON DELETE CASCADE 자동 ID 발급
좋은 테이블 설계는 나중에 바꾸기 쉬운 모양이 아니라, 처음부터 잘못 저장되기 어려운 모양을 만드는 일입니다.