현재 회원과 상품 상태를 보관하고 여러 주문에서 다시 참조한다.
쇼핑몰 스키마 설계 포인트
기준 데이터와 거래 기록
한 주문에는 공통 정보가 한 번만 있고, 상품별 수량과 주문 당시 단가는 상세 행으로 반복됩니다. 이 분리가 실습 전체의 기준입니다.
회원, 주문일, 상태, 총액처럼 주문 1건의 공통값만 둔다.
상품별 수량과 주문 당시 단가를 행 단위 거래 기록으로 남긴다.
기준 데이터
회원과 상품은 현재 상태를 보관하고 여러 거래에서
재사용된다.
거래 기록
orders는 주문 공통값, order_items는 상품별 수량과 당시 단가를
남긴다.
users
회원 기준로그인 식별자, 이메일, 등급처럼 회원 자체의 속성을 보관합니다.
user_id PK
username UNIQUE
email UNIQUE
grade
products
상품 기준상품명, 현재 가격, 재고, 카테고리처럼 판매 대상의 현재 상태를 둡니다.
product_id PK
name
price 점검
stock 점검
orders
주문 헤더한 주문의 회원, 주문일, 상태, 총액처럼 공통으로 한 번만 필요한 값을 둡니다.
order_id PK
user_id FK
status
total_amount
order_items
주문 상세주문 안의 상품별 수량과 주문 당시 단가를 행 단위로 기록합니다.
item_id PK
order_id FK
product_id FK
quantity 점검
unit_price
주문은 반드시 실제 회원 하나를 가리킵니다.
주문 삭제 시 상세를 함께 지우는 CASCADE 정책을 둡니다.
상품 현재 정보와 주문 당시 단가는 분리해 보존합니다.