1. 요구사항 분석
1) 회원 (Customer)
- 회원은 아이디(이메일), 비밀번호, 이름(실명), 휴대폰번호를 가진다.
- 회원은 회원등급, 회원번호를 가진다.
- 회원은 하나의 장바구니를 가진다.
- 장바구니는 여러 가지의 장바구니 아이템을 가진다.
- 회원은 여러 개의 주문을 가질 수 있다. (회원<->주문 1:N 관계)
- 회원은 여러 개의 배송지 정보를 가질 수 있다. (회원 <->배송지 1:N 관계)
- 배송지 정보는 받으시는 분 이름, 연락처(전화번호), 주소를 가진다.
- 회원은 여러 개의 쿠폰을 가질 수 있다. (회원<->쿠폰 N:N 관계)
- 회원은 적립금을 가질 수 있다.
- 회원은 여러 개의 신용카드를 가질 수 있다. (1:N 관계)
- 회원은 (무통장 결제를 위해) 하나의 환급계좌와 하나의 현금영수증 정보를 가질 수 있다. (회원<-> 무통장 결제 1:1관계)
2) 상품 카테고리 (Product Category)
- 상품 카테고리는 여러 개의 상품을 가진다.
- 전체보기는 전체 상품을 가진다.
- 개별 카테고리는 해당 카테고리에 해당되는 수만큼의 상품을 가진다.
- 상품은 대표 모델 1개와 기능별 모델로 분리함
3-1) 상품(Product)
- 상품은 상품명, 썸네일 이미지, 단위당 가격, 판매단위당 기준가격, 수량, 옵션, 옵션 비교 이미지를 가진다.
- 소고기의 경우, * 소고기 상품이 진공 포장되어 발송됩니다.의 멘트도 있음
- 상품은 1개의 상품설명을 가진다. (1:1 관계)
- 상품은 여러개의 리뷰를 가진다.
- 상품은 1개의 상품 정보안내를 가진다.
3-2) 상품 설명(Product description)
- 상품설명은 상품설명 이미지(상), 신선 일자, 상품설명 이미지(하), 배송종류/생산이미지를 가진다.
- 돼지고기(옵션) : 삼결살/목살/항정살 등 구이용(얇게/보통/두껍), 수육용(수육용), 제육용(제육용), 찌개용(요리용), 안심/등갈비/분쇄육(요리용)
- 상품설명은 반드시 1개의 상품에 속한다.
3-3) 상품 리뷰(Product Review)
- 리뷰는 제목, 본문, 작성자, 작성자의 구매횟수, 함께 구매한 상품, 작성일자를 가진다.
- 리뷰는 반드시 하나의 상품에 속한다.
- 리뷰는 반드시 한 명의 유저에게 속한다.
3-3-1) 리뷰 카테고리
- 리뷰 카테고리는 이름을 가진다.
- 이름 : 오늘의 집밥, 맛있는 여행, 역시 정육각, 품격있는 선물, 믿고시키는 정육각, 정육각 매니아
- 리뷰 카테고리는 여러 개의 리뷰 태그를 가진다.
3-3-2) 리뷰 태그
- 리뷰 태그는 여러 개의 상품명의 리뷰를 가진다. (최신순으로 가져오기)
- 리뷰 태그는 반드시 하나의 리뷰 카테고리에 속한다.
- 상품 기본정보는 상품명, 등급, 부위명칭, 도축장명 등 카테고리별로 상이한 상품 기본정보를 가진다.
[의사결정 포인트]
카테고리별로 상품 기본정보 컬럼이 다 다름. 6개 각각의 상품 기본정보 테이블을 만들지, 하나로 만들어서 쓸지 결정해야 함.
3-4) 옵션
- 옵션은 옵션타입과 여러 개의 옵션요소를 가질 수 있다.
- 구이용, 국거리용, 요리용에 따라 옵션이 부
[추가 참고자료 : 신선일자 (Str + 일자/℃ 조합)]
돼지고기 : 내일 받으실 삼겹살의 도축일을 확인하세요!
XX월 XX일
소고기 : 내일 받으실 일반한우 등심의 숙성 상태를 확인하세요!
X℃에서 XX일 숙성
닭고기 : 내일 받으실 통닭의 도계일을 확인하세요!
XX월 XX일
달걀 : 내일 받으실 달걀의 산란일을 확인하세요!
XX월 XX일
우유 : 내일 받으실 우유의 착유일을 확인하세요!
XX월 XX일
이유식 : 이번 주 정육각 이유식 다짐육의 도축일과 발송일은 아래와 같습니다.
도축일 XX월 XX일 / 발송일 XX월 XX일
4-1) 장바구니 (Cart)
- 장바구니는 회원, 총 상품금액, 총 배송비, 예상결제금액을 가진다. (각각 1개씩 가짐)
- 장바구니는 여러개의 장바구니 아이템을 가진다.
4-2) 장바구니 아이템 (Cart Item)
- 장바구니 아이템은 상품명, 상품의 옵션, 수량, 해당 아이템의 합계가격을 가진다.
- 장바구니에서 특정 상품의 수량을 1단위로 줄이거나 늘릴 수 있다.
- 장바구니에서 특정 상품을 장바구니에서 삭제할 수 있다.
5-1) 주문(Order)
- 주문은 주문번호, 구매자, 주문일자, 상품총합금액, 배송비(+요소), 쿠폰/적립금 사용금액(-요소), 최종 결제예정금액, 주문상태를 가진다.
- 주문은 여러 개의 주문 상세를 가진다.
- 주문은 반드시 한 명의 회원에 속한다.
- 주문은 반드시 하나의 배송지 정보를 가진다.
- 주문은 반드시 하나의 도착희망일을 가진다.
- 주문은 반드시 하나의 결제정보를 가진다.
5-2) 주문 아이템(Order Item)
- 주문 아이템은 주문_id, 주문한 상품명, 상품의 옵션, 구매수량, (해당상품 구매금액)를 가진다.
- 주문 아이템은 하나의 주문에 반드시 속한다.
6) 쿠폰
- 쿠폰은 발급일, 쿠폰명, 사용조건, 사용기한, 상태를 가진다.
- 쿠폰은 여러 명의 회원을 가질 수 있다. (다대다 관계)
- 회원 역시 여러 개의 쿠폰을 가질 수 있다.
7) 적립금
- 적립금은 지급일, 지급내역, 지급금액, 사용금액을 가진다.
- 적립금은 반드시 한 명의 회원에 속한다.
8) 신선플랜
- 신선플랜은 구매날짜, 내역(상품구매, 플랜 시작, 상품 구매, 기간만료), 사용/지급, 잔여횟수를 가진다.
6) 결제수단
- 결제수단은 3개의 결제수단 중 1개를 가진다.
- 신용카드, 페이코, 무통장입금
7) 신용카드
- 신용카드는 1) 카드별명, 2) 생년월일 앞 6자리 또는 사업자등록번호(무기명), 3) 카드번호, 4) 유효기간(숫자) 월(2자리) 5) 연도(2자리), 6) 비밀번호 앞 2자리를 가진다.
- 신용카드는 반드시 하나의 회원에 속한다.
8) 무통장입금
- 무통장입금은 하나의 환급계좌와 하나의 현금영수증 정보를 가질 수 있다.
- 결제금액 10만원 이상이면 현금영수증 발급 의무임
- 환급계좌는 은행명, 계좌번호를 가진다.
- 환급계좌는 1명의 회원에 속한다.
- 현금영수증 정보는 이름(법인명), 휴대폰번호(사업장등록번호), 이메일 주소를 가진다.
- 현금영수증 정보는 1명의 회원에 속한다.
9) 공지사항
10) 이벤트
- 이벤트는 이벤트명, 설명, 썸네일 이미지, 쿠폰, 본문 이미지를 가진다.
11) 자주 묻는 질문 (FAQ)
- FAQ는 질문 카테고리, 서브 카테고리, 질문, 답변을 가진다.
12) 1대1 문의
- 문의는 제목, 내용, 파일을 가진다.
- 문의는 반드시 1명의 회원에 속한다.
2. ERD 설계