[Toy Project] 제품 재고 관리 시스템 ERD 수정

최지나·2023년 12월 19일
2
post-thumbnail

토이 프로젝트의 진도가 잘 나가지 않는 느낌이 들었다 🫨🫨
계속해서 API 만들고,,, test를 하고는 있었지만 핵심 기능들이 만들어지지 않아 그 원인을 찾고자 했다!!


수정 계기 및 과정

가장 시작하기 두려웠던 부분은 통계였다.

  • 이익, 순이익을 구할 때 상점의 종류(수수료를 받는지, 매대비 유뮤), 제품의 할인 기간 및 할인 여부 등을 고려해야 하는데 이 때 존재하는 거의 모든 테이블을 참조해야 했다

  • 게다가, 할인을 월의 중간부터 (ex 11월 10일 ~ 12월 10일) 하면 정확하지 않은 통계가 구해질 우려도 있었다. 하지만 오프라인 매장의 경우 어떤 상품이 얼마나 팔렸는지를 한 달 단위로만 알 수 있기에, 매장 별 상품 테이블이나 통계 테이블의 기준을 한달에서 바꿀 수도 없었다

여러가지를 고민하다가, 처음 설계부터 다시 보기로 결심했다 그리고, 이 제품을 사용하게 될 친구의 누님과,,, 미래의 사장님들의 입장에서 현재 설계가 어떤 문제가 있는지를 살펴보았다

위의 부분이 가장 먼저 눈에 들어왔다
특정 매장에 팔릴 특정 상품 (ex 아이디어스에 팔 갈색 곰돌이 목돌이)을 등록 할 때 month 단위로 등록을 새로 해줘야 하는 게 귀찮을 것 같았다

그래서 과감하게 month 컬럼을 없애고, 새로운 테이블 sales_history 테이블을 생성하였다 제품의 판매 기록을 별도의 테이블에서 관리함으로써 사장님들이 특정 상품을 월마다 등록할 필요가 없게 만들었다

이렇게 되면 store_product 테이블에서 판매수를 기록할 필요가 없어져 sale_cnt 컬럼은 제거하였다. 다만, 불량이나 파손된 상품이 생길 경우를 고려하기 위해 재고수, 결함수 컬럼을 추가하였다

또한 처음에 친구의 언니에게 받았던! 평소에 관리하고 있는 excel 표를 다시 한 번 꼼꼼하게 살펴보았다 그랬더니 discount 에 관련된 내용은 그 어디에도 없었다,,, !! 조금 더 일반적인 시스템을 만들겠다는 욕심에 추가한 개념으로 인해, 개발 속도가 느려졌다고 판단해, 과감히 discount 테이블 자체를 없애고, 대신 store_product 테이블에 store_price 컬럼을 추가했다. 이를 통해 특정 매장에만 할인을 적용하고 싶을 때 매장 단위로 가격 변동이 가능하게 되었다

통계에서는 store 단위의 통게이기때문에 product_code는 제거해주었고, 통계를 매월 말|사용자가 원할 때 업데이트하고 싶어, 언제 최종 업데이트 된 통계인지 알게 하기 위해 last_updated_time컬럼을 추가해주었다

마지막으로 물건 판매마다, 판매자가 원하는 메모를 남길 수 있도록 memo 컬럼을 추가하였다

수정된 ERD

수정된 ERD는 다음과 같다:

느낀 점

  • 최대한 많은 상황을 포괄할 수 있는 설계를 하는 것이 물론 중요하지만, 필수 요구 사항에 맞는 조건에 먼저 우선순위를 두고 설계 및 개발을 하는 것의 중요함을 느낄 수 있었다
  • 재점검을 했으니 이번에는 속도를 좀 내서 만들어보고 싶다 🙂
profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글