35

Day 2 실습: 이커머스 모델링

노드/관계 타입 설계 (도메인 모델링)

학습 목표

스키마 설계 및 제약조건 카테고리 계층 구현 OrderItem 패턴 적용

Day 2 실습: 이커머스 도메인 모델링

실습 목표

이커머스 플랫폼의 그래프 스키마를 설계하고 구현합니다.


비즈니스 요구사항

핵심 기능

  1. 상품 탐색: 카테고리별 상품 목록
  2. 주문 관리: 주문 생성, 상태 추적
  3. 리뷰 시스템: 상품 리뷰 및 평점
  4. 추천 시스템: "함께 구매한 상품" 추천
  5. VIP 분석: 우수 고객 식별

데이터 규모 (예상)

  • 고객: 10만 명
  • 상품: 5만 개
  • 주문: 100만 건
  • 리뷰: 50만 개

과제 1: 스키마 설계

다음 Object Type을 정의하세요:

1.1 고객 (Customer)

  • 필수 속성: customerId, name, email, tier
  • 선택 속성: phone, birthDate

1.2 상품 (Product)

  • 필수 속성: productId, name, price
  • 선택 속성: description, stockQuantity

1.3 주문 (Order)

  • 필수 속성: orderId, orderDate, totalAmount
  • 선택 속성: status, shippingAddress

1.4 주문 항목 (OrderItem) - Intermediate Node

  • 필수 속성: quantity, unitPrice

1.5 카테고리 (Category)

  • 필수 속성: categoryId, name
  • 선택 속성: description, level

1.6 리뷰 (Review)

  • 필수 속성: reviewId, rating, createdAt
  • 선택 속성: text

과제 2: 관계 정의

다음 관계를 정의하세요:

시작 노드관계종료 노드카디널리티
CustomerPLACEDOrder1:N
OrderCONTAINSOrderItem1:N
OrderItemFOR_PRODUCTProductN:1
ProductIN_CATEGORYCategoryN:1
CategoryPARENT_OFCategory1:N (자기참조)
CustomerWROTEReview1:N
ReviewFOR_PRODUCTProductN:1

과제 3: 제약조건 및 인덱스

  1. 각 노드의 ID에 UNIQUE 제약조건
  2. 자주 검색하는 속성에 인덱스
  3. 이메일에 UNIQUE 제약조건

과제 4: 샘플 데이터 생성

  • 고객 5명
  • 상품 10개 (3개 카테고리)
  • 주문 8건
  • 리뷰 6개
에디터 로딩 중...
힌트 보기
  • 💡 IF NOT EXISTS로 중복 생성 방지
  • 💡 OrderItem은 Order와 Product 사이의 중간 노드
  • 💡 카테고리는 PARENT_OF 자기 참조로 계층 구현
정답 보기
에디터 로딩 중...