목적: 비즈니스 요구사항을 반영한 고수준 모델
특징: 주체(Entity), 관계(Relationship), 속성(Attribute) 위주로 표현, 정규화 미적용
[Member]───<places>───[Order]───<contains>───[OrderItem]───<refers to>───[Book]
│
└────<has>────[Cart]───<contains>───[Book]
목적: 실제 논리적 스키마 설계, 정규화 적용, 키 정의 포함
특징: PK, FK 명확히 정의, 1NF ~ 3NF 고려
Member
member_id
(PK)name
email
password
join_date
Book
book_id
(PK)title
author
price
stock
category
Cart
cart_id
(PK)member_id
(FK → Member)created_at
CartItem
cart_id
(FK → Cart)book_id
(FK → Book)quantity
cart_id
, book_id
Order
order_id
(PK)member_id
(FK → Member)order_date
status
total_price
OrderItem
order_id
(FK → Order)book_id
(FK → Book)quantity
unit_price
order_id
, book_id
[Member]───(1:N)───[Order]───(1:N)───[OrderItem]───(N:1)───[Book]
│
└──(1:N)──[Cart]──(1:N)──[CartItem]──(N:1)──[Book]
총액
은 계산 가능 → 제거)Member
에 권한 수준 추가 가능 (ex. 일반/관리자)Order
또는 Book
변경 시 변경 이력 테이블 설계 고려“책을 파는 가게 웹사이트를 만든다고 상상해 봐요!
사람(회원)은 책을 장바구니에 담고 주문해요.
책과 사람, 주문, 장바구니를 표로 만들고,
그 표들이 서로 어떻게 연결되는지 그림으로 보여주는 게 ERD예요!”