728x90

테이블 소개
주문(orders)
칼럼: 유저아이디(FK), 주문 상태(FK), 최종 가격, 생성일, 업데이트일
주문 아이템(orderitems)
- 주문에 담긴 상품들의 정보와 수량 등을 포함하는 테이블 (주문에 여러개의 상품이 담길 수 있어서 생성했다.)
칼럼: 주문아이디(FK), 상품 아이디(FK), 수량, 생성일, 업데이트일
주문 상태(order status)
- 주문 상태정보를 저장하는 테이블이다. 카테고리와 비슷한 개념이라고 보면된다. "주문 대기", "주문 진행중", "주문 완료"등의 정보가 저장된다.
칼럼: 상태(status)
결제(payments)
- 결제 정보를 저장한다. 주문을 FK로 갖는다.
칼럼: 주문 아이디(FK), 결제 종류(FK), 최종 가격, 상태, 생성일, 업데이트일
결제 메소드(methods)
- 결제 유형을 저장한다. 카드, 무통장, 카카오 페이, 네이버 페이 등등
칼럼: 이름
주문 처리 과정
- 장바구니 없는 경우
주문 생성 -> 주문 아이템 생성 -> 결제 생성 -> 결제 완료 -> 주문 상태 변경
- 장바구니 있는 경우
장바구니 생성 -> 주문 생성 -> 장바구니에 있는 목록으로 주문 아이템 생성 -> 결제 생성 -> 결제 완료 -> 주문 상테 변경
일단 로직은 이렇게 구성해 보았다.
트랜잭션 처리, 결제 취소, 결제 중 네트워크 중단 등 다양한 상황을 가정해보면 재밌는 구현 요소가 많이 나올 것 같다.