-
AI 검증 비즈니스 프로젝트 2일차 회고(1일차 고민 해결)회고 2024. 8. 23. 16:13
고민 1
- 주문 대 메뉴는 1대N인 것 자명.
- 메뉴 대 주문은?????? 메뉴는 여러 개의 주문에 속할 수 있음. 그래서 메뉴 입장에서 1대N?
- 근데 배민을 보자면… A가게의 메뉴를 장바구니에 담고 B가게의 메뉴를 장바구니에 담으면 기존 A가게의 메뉴가 사라짐.
- 그러면.. 메뉴 대 주문은 1대N을 하지 않아도 되는 건가…?
- 참고한 자료에 따르면 배민은 메뉴 대 주문도 1대N으로 매핑을 해서 결과적으로 주문 대 메뉴가 N대N이 되어 중간 테이블을 생성했음….
- WHY…? 수량 관련 컬럼이 없긴 하던데… 수량을 파악하기 위해..? SUM..?
→ 주문 대 메뉴의 연관관계가 1대N, N대N이어서 중간 테이블을 생성하는 것은 선택...!
배민에서는 캐싱을 하기 위해 장바구니라는 테이블을 만들기 위해 N대N 선택 추측....
고민 2
- 주문 하나 당 결제가 매핑이 되므로 주문 대 결제는 1대1.. ㅇㅋ
- 근데 문제는 결제 테이블에 어떤 컬럼을 넣을 것이냐..
- 외부 API를 통해서 반환값을 받음…
- 근데 그 반환 값 중 다른 엔티티를 참조하면 얻을 수 있는 값을 결제 엔티티의 컬럼에 추가를 해줘야 하나…?
- 여러 엔티티를 참조하면 성능이 저하될 수 있으므로, 반정규화를 시켜야 하는 건가..?
→ 메뉴 가격이 바뀔 수 있고 자주 바뀔 수 있으므로, 결제 테이블에 가격 등을 넣는 것이 나음!!
'회고' 카테고리의 다른 글
메일 발송 원리 (3) 2024.10.12 토큰 유효성 검사 관련 리팩토링 (0) 2024.10.07 AI 검증 비즈니스 프로젝트 - 로그인 관련 트러블 슈팅 (0) 2024.08.28 AI 검증 비즈니스 프로젝트 1일차 회고(API, ERD, 테이블, 인프라 명세서 작성) (0) 2024.08.22