Closed Kim-DaHam closed 9 months ago
MyPage.tsx 페이지의 management 탭에서 클라이언트의 리뷰 작성을 수행하는 /reviews POST 요청 핸들러를 수정합니다.
MyPage.tsx
/reviews
NoSQL 데이터 형식에 맞춰 핸들러를 수정했습니다.
/mocks/handlers/commission.ts
setQueryData
CommissionItem.tsx
https://github.com/Kim-DaHam/Portfolly/assets/81691456/55116ef8-27a2-4f28-b71c-6a551979f2b2
기존 방식은 commission 데이터를 portfolio 컬렉션 안에 commissions 중첩 컬렉션으로 저장해 관리합니다.
전문가 계정의 경우 자신의 portfolio를 순회하면서 commissionList를 만듭니다.
하지만 클라이언트의 경우 본인의 portfolio가 없기 때문에 자신의 commissionList를 만들기 위해서는 존재하는 모든 portfolio의 commission을 순회해야 합니다.
user 컬렉션에 commissions 컬렉션을 추가하려고 하였으나 그렇게 할 경우 중복 데이터가 너무 많아진다고 판단했습니다.
또는 RDMS의 Join과 비슷하게, user 컬렉션의 commissions에 commissions id를 배열을 저장한 뒤 commission 컬렉션을 만들어 순회하며 자신의 commission을 찾는 방식 또한 고민했습니다.
하지만 그렇게 해도 존재하는 모든 포트폴리오의 커미션 전체를 순회하는 건 마찬가지입니다. 게다가 중복 데이터만 더 늘어나 커미션 하나를 수정/삭제 했을 때 함께 고쳐야 하는 다른 컬렉션들이 너무 많아졌습니다.
따라서 반복 횟수는 동일하되 중복 데이터는 제일 적은 기존 방식을 택하기로 했습니다. 데이터가 많지 않은 프로젝트이기 때문에 반복 횟수를 걱정하기 보단 코드의 복잡성을 줄이는 게 낫다고 판단하였습니다.
개요
MyPage.tsx
페이지의 management 탭에서 클라이언트의 리뷰 작성을 수행하는/reviews
POST 요청 핸들러를 수정합니다.NoSQL 데이터 형식에 맞춰 핸들러를 수정했습니다.
작업사항
/mocks/handlers/commission.ts
에서 리뷰 등록 핸들러를 수정한다.setQueryData
로 클라이언트 데이터를 업데이트 한다.CommissionItem.tsx
컴포넌트 이름 부분을 수정한다.변경후
https://github.com/Kim-DaHam/Portfolly/assets/81691456/55116ef8-27a2-4f28-b71c-6a551979f2b2
기타 사항
기존 방식은 commission 데이터를 portfolio 컬렉션 안에 commissions 중첩 컬렉션으로 저장해 관리합니다.
전문가 계정의 경우 자신의 portfolio를 순회하면서 commissionList를 만듭니다.
하지만 클라이언트의 경우 본인의 portfolio가 없기 때문에 자신의 commissionList를 만들기 위해서는 존재하는 모든 portfolio의 commission을 순회해야 합니다.
user 컬렉션에 commissions 컬렉션을 추가하려고 하였으나 그렇게 할 경우 중복 데이터가 너무 많아진다고 판단했습니다.
또는 RDMS의 Join과 비슷하게, user 컬렉션의 commissions에 commissions id를 배열을 저장한 뒤 commission 컬렉션을 만들어 순회하며 자신의 commission을 찾는 방식 또한 고민했습니다.
하지만 그렇게 해도 존재하는 모든 포트폴리오의 커미션 전체를 순회하는 건 마찬가지입니다. 게다가 중복 데이터만 더 늘어나 커미션 하나를 수정/삭제 했을 때 함께 고쳐야 하는 다른 컬렉션들이 너무 많아졌습니다.
따라서 반복 횟수는 동일하되 중복 데이터는 제일 적은 기존 방식을 택하기로 했습니다. 데이터가 많지 않은 프로젝트이기 때문에 반복 횟수를 걱정하기 보단 코드의 복잡성을 줄이는 게 낫다고 판단하였습니다.