기능 구현 먼저, api문서 통신 위주
3주안에 못해도
우선순위
바로 erd 회의
https://dbdiagram.io/d/2team-6524aa73ffbf5169f05b838c
Erd 테이블은 데이터 기반으로 -> 마이페이지:
위치는 현 위치로 하기로
구독 날짜를 알아야 하니까 user 구독, 셀러 구독 테이블을 따로 빼야함
주문 테이블- >결제 이후에 들어가는 주문내역
결제 테이블 ->버튼 누르면 결제되었다 알람/ 외부 결제 모듈(추가사항)
(수령하면, 셀러에게 돈 주는 거는 빼기
간단하게. )
검색, 필터링 -> 조건문 select like, select where
할인가 할인율은 우리가 직접 계산하는게 아니라, query문 있음
위치 -> 조건 / 반경
“위치 기반 api “ 검색
https://kagrin97-blog.vercel.app/other/Kakao%20Local%20Api
회원가입때 받은 주소(필수값) 로 5km로 할 거냐 현위치로 할거냐 -> 웹서비스니 그렇게 돌아다니지 않을테니
(선택) 배송을 현재 위치 기반
(선택) 처음 들어가면 메인페이지를 현재 위치 기반
주소: 3줄로 우편번호/ 도로명 주소/ 상세주소 (우편번호 끌어오더라도)
변경 사항: user table에 user name 추가 (배송 때문에)
Product 테이블
- Seller id 넣으면 연결되니, seller 테이블에 마켓명까지 연결 되니
- Category id (fk)
- 판매가, 할인율 discount rate
- created at, updated at
변경사항: product 테이블 내에 review
상품 목록에서 rating 넣어야
정렬- 평점순 가능하니
리뷰 페이지
- 이미지 Null (리뷰에 사진 없을 수도 있으니)
- 글
- 닉네임 대신 이메일로 (뒤에 암호화해서) --> user id로 가져오는
- product id
- 좋아요 (선택사항)
- created at,
updated at - rating (별점)
--> 목록처럼 다 보이게, 그래서 리뷰의 댓글 없게
변경사항: 리뷰는 create ,read만 필수 (update, delete는 추가사항)
- 리뷰 pagination X
변경 사항: 거점 배송 안하기로
배송은 택배/ 방문 수령
주문 테이블 (결제 완료된 주문 내역서)
- total price (프론트에서 주문할 떄 보내줄 것)
- order_detail (order_goods) 에서 수량, 각 금액 보내줄 것 (연결)
- 배송 방법 (shipping method) : -->배송 테이블 따로 안 뺴는거로
- 결제 방법
- 배송 상태 (devilery status) -> 0,1,2로 (배송 전, 중, 완료) = 주문 상태로
- updated at은 필요 없는게, 주문 취소/ 수량 추가 시에는 다른 order 가 추가 되는 거니까
합산까지만 보내주고, 배송비 들어가고 안 들어가는건 프론트에서 하는 거.
우리는 들어오는 가격만
결제 테이블
장바구니
- 제품의 재고만큼
- 가격은 products_id (join)에서 올 것
order detail(order goods)에
- product id, user id, quantity 들어가면 됨
- 여기에 order id 가 들어가면, join 해서 order 테이블에 어떤 상품썼는지 다 알 수 있음
- 각각 상품 몇개 들어있는지 (주문 내역서의 디테일)
product_main _ images(대표이미지)
- 단일이미지였으면, 이미지 테이블이 필요 없고, 메인페이지에서 0,1로 대표 이미지 구분하는거로 where로 가져오는 거
or product에 main image 무조건 넣고 / product images는 상세 여러 이미지만.
- product 안에 image를 넣게 (제품 등록할 떄 메인 이미지 등록)/ 나머지
product_detail_images
(프론트에게 sort로 주는 거도 가능)
sellers 테이블
- 마켓명 (nickname 없음)
- 방문수령이 있으니까, 마켓 주소 -> 위도 경도가 필요함 -> 주소 3개
- 마켓 이미지 --> product 메인 이미지가 있고, 마켓 프로필용 이미지가 있음 (단일 이미지)
(고려점: 테이블 명과 키명 맞춰서, 우리가 알아보기 좋게)
- product 관련한 정보는 seller 테이블이 아니라(셀러 정보가 아니니까), product 테이블에 sellers_id로 들어감
seller 테이블: seller_market_image는 단일 이미지 (multi 아님)
user subscription table
- 카드 번호 (앞자리만 암호화)
- subscription history (결제 log로) 기록
- subscription fee
- user id
- createdAt , updatedAt
- subscription status (잠깐 중단 옵션)
구독 등급/멤버십 종류가 있는게 아님 (돈 많이 낸 사람 /적게 낸 사람 왼쪽 작은 배너, 위 배너 구분 안 하기로)
기간은 쿼리문으로 하면 됨. sql 자체 함수 있음 (주/ 달)
seller subscription table
- 카드 번호 (앞자리만 암호화)
- 카드 subscription history (결제 log로) 기록
- subscription fee
- seller id
- createdAt, updatedAt
- subscription status (잠깐 중단 옵션)
subscription 구독 테이블 = 전체 목록에서 상위노출
구독 등급/멤버십 종류가 있는게 아님 (돈 많이 낸 사람 /적게 낸 사람 왼쪽 작은 배너, 위 배너 구분 안 하기로)
- 기간은 쿼리문으로 하면 됨. sql 자체 함수 있음 (주/ 달)
seller_sub 구독한 사람은-> 목록 상위노출 (배너가 아니라)거점 등록한 사람은 -> 광고 배너
변경사항:
seller_sub 구독한 판매자: 상단 배너에 이미지 3개씩
거점 등록: 홍보 안하기로.
변경사항: seller_category table 삭제
market(seller)_category
- category name
[product_category]
- category name
[likes]
- 표본이 적지는 않는다 -> 동쪽 5km, 서쪽 5km
- product likes 상품 좋아요
- user_id
(제품 좋아요가 있고, 댓글이 있고, 댓글 좋아요는 뺴기로, 댓글의 대댓글도 빼기로)
거점 등록/ 광고 등록한 사람 홍보 테이블
- 위치도 현위치 기준이어야 하니 address 넣어야
제품 좋아요 (X)
셀러는 위치 고정으로 처음 기입한 주소에서 올리고,
위치 기반: 두 점 사이의 거리를 만드는 방식을 sql로 프론트(브라우저에 있는 위치 좌표를 get)에게서 r을 받아오면, 백엔드는 검색해서, 조절하는거로
[advertisements]
- 거점 등록한 사람한테 혜택을 주겠다 = "광고"해주는거
[연결키]
재고수량 관리 안할거니까 product 테이블에 있는 quantity 빼기.
product 테이블에 있는 quantity 는 재고 관리
order에 있는 quantitiy는 수량 .
이미 우리는 product DB에 이 해당 상품의 테이블안에 있는 값 정보들 다 있으니, 주문/결제 시에는 productId 만 있으면 됨.
'Wecode - Project 3 (부트캠프) > Project 3 과정' 카테고리의 다른 글
Project 3: sprint 1주- 2일 차: 프- 백 ERD modeling (0) | 2023.10.10 |
---|---|
Project 3: sprint 1주-1일차- erd modeling - 관계도 (0) | 2023.10.10 |
Project3: sprint 1주-1일차 - user flow (0) | 2023.10.09 |
Project 3: sprint 1주-1일차 - PET 분석 (0) | 2023.10.09 |
Project3: sprint 1주 -1일차- Business Modeling (0) | 2023.10.09 |