유저 스키마 (user-schema)

항목 내용 type required default unique 비고
email 이메일 String true true
name 이름 String true
password 비밀번호 String true 해시화 필요
phoneNumber 휴대폰번호 String true
address 주소 String true **주소 + 상세주소
(address + address_ detail)**
role user / admin String true user enum: ['user', 'admin']

주문 정보 (order-schema)

항목 내용 type required default unique 비고
id 주문내역 ID m.ObjectId true true
status 배송상태 String true **enum: ['입금 대기', '결제 완료', '배송 준비', '배송 중', '배송 완료', '구매 확정']

상태 바뀌어야 하나? 관리자가 상태 바꿀 수 있다?** | | customerId | 구매자 | m.ObjectId | true | | | | | createdAt | 구매 일시 | Date | true | date.now | | | | product | 구매 상품 | Object 아래는 하위 | | | | | | - productId | 상품 ID | m.ObjectId | | | | | | - count | 구매 수량 | Number | | | | | | - choiceOption | 상품 옵션 | m.ObjectId | true | | | DB에 넣어준 그대로 불러오기만? |

상품 정보 (item-schema)

항목 내용 type required default unique 비고
name 상품 이름 String true
id 상품 ID m.ObjectId true true
categoryId 카테고리 ID Number true
brand 브랜드
(제조사) String true enum: [’두샘’, ‘내일의집’, ‘내마미아’, ‘사익가구’, ‘나이스침대’ ]
price 가격 Number true
image 이미지 URL String true
option 모든 옵션 enum (array)

카테고리 (category-schema)

항목 내용 type required default unique 비고
name 카테고리 이름 String true
id 카테고리 ID Number true true

리뷰 (review-schema) [ 필수 아님 ]

항목 내용 type required default unique 비고
postId 게시물ID m.ObjectId true
content 상품 String true true
author 작성자 String true

검색 (search-schema) —→ X

프론트쪽에서 브라우저에 저장하도록 휘발성 데이터는 유저가 많아지면 DB공간이 차기 때문에 X ex. 몽고DB : 특정 시간 지나면 기존 데이터 지워주는 거

항목 내용 type required default unique 비고
user 사용자 m.ObjectId true
query 검색어 String true true
timestamp 검색일 m.ObjectId true Date.now