Crow's Foot 기호를 전부 외우기보다, 어떤 엔터티가 다른 엔터티를 어떻게 연결하고 왜 따로 분리됐는지 보면 구조가 훨씬 빨리 읽힙니다.
parent_id 덕분에 상위-하위 분류를 하나의 Category 테이블로 표현하고, Product는 그 분류 아래에 배치됩니다.
한 회원은 여러 리뷰를 남길 수 있고, 한 상품도 여러 리뷰를 가질 수 있습니다. Review는 그 활동 자체를 담는 독립 테이블입니다.
OrderItem이 없으면 주문별 수량·단가를 보존할 수 없습니다. 그래서 상품 목록이 아니라 주문 당시의 상세 행으로 분리합니다.
주문은 여러 개일 수 있지만, 배송 레코드는 주문 하나에 대응됩니다. 그래서 배송 추적 정보는 Order와 1:1로 분리됩니다.