TABLE DESIGN
CREATE TABLE은 저장 규칙을 고정하는 설계 문서다
테이블 설계는 컬럼을 늘어놓는 일이 아니다. 값의 타입, 관계, 무결성, 운영 변경 비용을 처음부터 함께 정하는 일이다.
| 결정 | 고정되는 것 | 대표 키워드 |
|---|---|---|
| 구조 | 데이터가 들어갈 테이블과 컬럼의 뼈대 | CREATE ALTER |
| 저장 | 값의 범위, 정확도, 날짜/시간 의미 | NUMBER VARCHAR DATE |
| 규칙 | 잘못된 값과 중복 데이터를 막는 DB 단계 검증 | PK FK CHECK |
| 운영 | 변경 작업의 잠금, 롤백, 배포 영향 | LOCK COMMIT ROLLBACK |
| 파생 | 임시 테이블, 복사 테이블, 자동 ID 발급 방식 | TEMP CTAS IDENTITY |
| 관계 | 의미 | 보존해야 할 값 |
|---|---|---|
users 1:N orders |
한 회원은 여러 주문을 만든다 | 주문 시점의 회원 참조 |
orders 1:N order_items |
한 주문은 여러 상품 라인을 가진다 | 주문 삭제 시 상세 정리 |
products 1:N order_items |
상품은 여러 주문 상세에서 참조된다 | 주문 당시 단가 |
최종 이해: 좋은 테이블 설계는 나중에 억지로 고치는 구조가 아니라, 처음부터 잘못 저장되기 어려운 구조다.