쇼핑몰 시스템에서 필요한 데이터를 분석하여 엔티티(Entity), 속성(Attribute), 관계(Relationship)를 정의해보겠습니다.
쇼핑몰의 기본적 요구사항은 다음과 같습니다.
쇼핑몰에서 관리해야 하는 주요 엔티티를 선정합니다.
- 회원(Customer) : 쇼핑몰 고객
- 상품(Product) : 판매되는 제품
- 주문(Order) : 고객의 주문 내역
- 주문상세(OrderItem) : 주문에 포함된 상품 상세정보
- 카테고리(Category) : 상품의 분류
- 리뷰(Review) : 고객이 상품에 남긴 후기
- 장바구니(Cart) : 상품 임시 보관 (선택사항)
각 엔티티가 가져야 할 속성들을 정의합니다. (기본키는 굵게 표시)

FK: 외래키(Foreign Key)를 의미합니다.
엔티티 간의 관계를 분석하여 정의합니다.

※ N:M 관계는 중간 테이블이 필요함:
예) 상품 ↔ 카테고리 관계는 중간 테이블인 상품카테고리(ProductCategory)를 만들어 해결함.
간단한 ERD를 텍스트로 표현하면 아래와 같습니다.
[회원(Customer)] --- 1:N --- [주문(Order)] --- 1:N --- [주문상세(OrderItem)] --- N:1 --- [상품(Product)]
[회원(Customer)] --- 1:N --- [리뷰(Review)] --- N:1 --- [상품(Product)]
[상품(Product)] --- N:M --- [카테고리(Category)]
[회원(Customer)] --- 1:N --- [장바구니(Cart)] --- N:1 --- [상품(Product)]
실제 ERD 도구로 작업하면,
더욱 명확한 시각화가 가능합니다.
테이블 수준에서 설계 예시를 조금 더 구체화하면:
-- 회원 테이블
Customer (회원ID(PK), 이름, 이메일, 비밀번호, 주소, 전화번호, 가입일시)
-- 상품 테이블
Product (상품ID(PK), 상품명, 설명, 가격, 재고수량, 등록일시)
-- 주문 테이블
Order (주문ID(PK), 회원ID(FK), 주문일자, 배송지주소, 총금액, 주문상태)
-- 주문상세 테이블
OrderItem (주문상세ID(PK), 주문ID(FK), 상품ID(FK), 수량, 구매가격)
-- 카테고리 테이블
Category (카테고리ID(PK), 카테고리명, 설명)
-- 상품카테고리 중간 테이블(N:M 관계 해소)
ProductCategory (상품ID(FK), 카테고리ID(FK))
-- 리뷰 테이블
Review (리뷰ID(PK), 상품ID(FK), 회원ID(FK), 평점, 리뷰내용, 작성일시)
-- 장바구니 테이블
Cart (장바구니ID(PK), 회원ID(FK), 상품ID(FK), 수량, 추가일시)
논리적 데이터 모델링 단계에서 ERD를 통해:
이렇게 하면 효율적이고 안정적인 데이터베이스 구축이 가능합니다.
쇼핑몰 데이터베이스의 논리적 데이터 모델링(ERD)은 엔티티, 속성, 관계를 명확히 정의하고 시각화하여 데이터 구조를 설계하는 과정입니다.