data model
MVP 기능 목록은 Book, CartItem, Order 중심의 스키마로 내려온다
온라인 북스토어 예시는 검색, 장바구니, 주문 흐름을 먼저 정하고 그 흐름을 저장할 엔티티와 참조 관계로 바꾸면 설계가 단순해집니다.
CartItem
사용자가 담은 도서와 수량을 임시 주문 후보로 보관합니다.
bookId
quantity
addedAt
Order
장바구니를 확정한 시점의 주문 항목과 총액을 남깁니다.
items
total
status
User
로그인 MVP를 선택할 때 장바구니와 주문의 소유자를 연결합니다.
email
name
role
참조 관계
CartItem → Book
장바구니 항목은 항상 하나의 도서 `_id`를 참조합니다.
Order → items
주문 시점의 가격과 수량은 변경 이력 보존을 위해 스냅샷으로
둡니다.
User optional
비회원 주문을 허용하면 이메일 같은 최소 식별자만 Order에 둘 수
있습니다.