[Toy Project] 제품 재고 관리 시스템 ERD 설계(2)

최지나·2023년 10월 1일
4

지난 포스트에 이어, 제품 재고 관리 시스템의 ERD 설계를 마무리하고, 테이블 정의서를 작성하였다. 🤩

이전 글: [Toy Project] 제품 재고 관리 시스템 ERD 설계(1)

완성된 ERD와 테이블 정의서는 다음과 같다. 각 테이블간의 관계(pk-fk 관계선)도 작성하였다.

ERD

테이블 정의서

# ERD

> 상품 할인 주기, 통계 주기 모두 month로 설정
> 월 별 할인가로 판매할 상품과 할인가 지정 필요

## table

### product

- product_code(pk) : 제품 코드
- category_code(fk) : 카테고리 코드
- name: 제품의 이름
- price: 제품의 판매가 (할인 적용 X)
- stock: 제품 재고 수 (상점에 등록된 재고 수 미포함)
- img: 제품의 이미지
- barcode: 제품의 바코드 정보
- description: 제품

### category

- category_code(pk) : 카테고리 코드
- parent_category_code(fk) : 상위 카테고리 코드
- name: 카테고리 명
- description: 카테고리 설명

### store

- store_code(pk): 매장 코드
- name: 매장명
- address: 매장 주소(오프라인 매장인 경우 존재)
- type: 매장이 매대비를 받는 매장인지 | 수수료를 가져가는 매장인지 | Both
- fixed_cost: 매대비
- comission_rate: 수수료 비율 (0~1)
- description: 매장 설명

### store_product

- store_product_id(pk): 매장 제품 아이디
- store_code(fk) : 매장 코드
- product_code(fk): 제품 코드
- month: 월
- incoming_cnt: 총 입고수
- sale_cnt: 판매 수량
- description: 매장 제품 설명

※ stock_cnt: 재고 수 (incoming_cnt - sale_cnt)

### discount

- discount_id(pk): 할인 아이디
- store_product_id(fk): 매장 제품 아이디
- discount_month: 월
- discount_price: 할인 판매가. 월별 할인가 데이터가 존재하지 않을 경우 product.price(제품의 판매가)로 판매

### store_statistics

- statistics_id(pk): 매장 통계 아이디
- store_code(fk): 매장 코드
- product_code(fk): 제품 코드
- month: 월
- month_revenue: 상품 월별 총 매출 (store_product.sale_cnt \* proudct.price | discount.discount_price)
- month_profit: 상품 월별 총 순이익 (month_revenue \* (1-store.commision_rate) - fixed_cost)

지난 포스트에서의 erd에 비해 변화된 내용

  • product 테이블 중복 칼럼 (price, cost) 삭제
  • store_product 테이블 stock_cnt 칼럼 삭제
    • stock_cnt는 (incoming_cnt - sale_cnt) 와 같은 공식으로 얻을 수 있기에, 데이터의 일관성을 위해 컬럼을 삭제하여 다른 컬럼들 (incoming_cnt, sale_cnt)만으로 재고 수를 구할 수 있도록 변경하였다
  • discount 테이블 price -> discount_price 컬럼명 변경, store_statistics 테이블 revenue -> month_revenue, profit -> month_profit 컬럼명 변경
    • 컬럼명 변경을 통해 각 컬럼이 의미하는 바를 명확히 나타낼 수 있게 하였다.

어느 정도 완성된 erd라 생각했어도 또 수정할 내용이 나온다,,, 😅
가장 걱정이 되는 부분은 통계 관련 테이블이다.
month_revenue와 month_profit 구하는 공식은 미리 생각해두었지만,
현재 칼럼들만으로 매장 별/제품 별 월별 통계/ 누적 통계 등을 다 구할 수 있을까 하는 의문이 든다,,,

다음 포스팅에서 필요한 API들에 대한 설계를 진행하면서 마지막으로 테이블 설계도 수정할 예정이다,,!!!

profile
의견 나누는 것을 좋아합니다 ლ(・ヮ・ლ)

0개의 댓글