1. 요구사항 분석
-
회원 기능
-
주문 기능
-
상품 기능
-
기타 요구사항
- 상품은 재고 관리가 필요하다.
- 상품의 종류는 도서, 음반, 영화가 있다.
- 상품을 카테고리로 구분할 수 있다.
- 상품 주문시 배송 정보를 입력할 수 있다.
2. 설계
2-1. 도메인 모델 설계
- 요구사항 분석을 바탕으로 어떤 도메인이 필요한지 살핀다.
- 각 도메인 간 연간관계를 파악한다.
- 회원-주문(1:N)
- 한 회원은 여러개의 주문을 가질 수 있다.
- 주문은 하나의 회원에 매핑된다.
- 주문-배송(1:1)
- 주문-상품(M:N)
- 하나의 주문에서 여러 상품을 선택할 수 있다.
- 한 상품은 여러개의 주문에 매핑될 수 있다.
- ⇒ 주문상품이라는 엔티티를 추가하여 1:N, N:1관계로 풀어낸다.
2-2. 엔티티 설계 (객체)
- 도메인 모델과 유사한 모양을 갖는다.
- Member
- 임베디드 타입인 Address를 갖는다.
- List<Order> 를 갖는다. (양방향 관계이기 때문에 표시하였지만 실무에서는 양방향 관계를 많이 사용하지 않는다. 회원이 주문을 갖는 것이 아니라, 주문이 회원을 갖는 것으로 생각하자)
- Order
2-3. 테이블 설계 (RDBMS)