본문 바로가기

DB/DB 테이블 설계

개인 마트 관리 시스템 DB 설계하기 (ERD 만들기, DB 구조, a.k.a 쇼핑몰DB)

개인 마트 관리 시스템 DB 테이블 설계하기

이 포스트를 계속 수정하면서 "마트 관리 애플리케이션"의 테이블을 만들어 볼 예정이다.

사촌 형 부탁으로 마이크로 애플리케이션을 만들기 때문에 일반적인 쇼핑몰 or 마트 관리앱과는 다를 수 있다.

* 배송X, 재고X, 결제(아임포트)X, 후기X, 댓글X


- 필요한 테이블

고객테이블

상품테이블

상품카테고리테이블

주문테이블

주문상세테이블

장바구니테이블 (장바구니는 쿠키(?)로 짠다고 들었는데 모르겠다..)

장바구니는 쿠키로 저장하기로 결정했다. 디비로 구성할 수도 있는것으로 알고 있는데 어떤 것이 더 좋은? 현명한 방법인지는 모르겠다.


MySQL상에서 하고 있어서 워크벤치로 reverse engineer.. 를 실행시켜서 설계한 테이블의 ERD를 가져왔다.

최대한 미니멀(?)하게 구성했다.

USER테이블에서 ID를 기본키로 사용하면 안되는것(회원탈퇴등의 이유..)을 알지만... 일단은 그렇게 지정했다.

상품테이블에 원산지, 유통기한등의 정보가 더 생길 수 있지만 간단하게 지정했다.

대부분의 테이블 아이디를 오토인크리먼트 속성을 지정했다.


상품(상품id, 상품명, 상품가격, 이미지경로, 카테고리)

카테고리(카테고리id, 카테고리명)

주문상세(주문상세id, 주문id, 상품명, 수량, 단가)

주문(주문id, 유저id, 주문날짜, 총액, 배송상태) => 배송했는지 안했는지 관리자에서 처리만 할 예정.(특이케이스)

유저(유저id, 유저pw, 이름, 주소, 폰넘버, 집전화번호)


tbl_product에 on_sale(판매중인지 아닌지), on_discount(할인중인지 아닌지) 컬럼이 추가되었다.

on_sale컬럼이 추가된 이유는 만약에 관리자가 상품을 삭제했을 때 실제 상품을 삭제하는 것이 아니라 삭제한 것처럼만 보이고 데이터는 유지해야하기 때문에 추가하게 되었다.

하다가 바뀌면 또 올릴 예정.

  • Favicon of https://thiago6.tistory.com BlogIcon thiago6 2019.03.27 16:44 신고

    상품 갯수 같은 경우, tbl_product에 적어주지 않아도 되나요? 재고같은 경우요

    • 저도 제대로 공부해보지 않았는데 답변드리겠습니다.

      상품이 예를 들어 '단일 품목'이면 개수를 달아도 무방할 것 같습니다만,
      예를 들어 의류면 사이즈별로도 재고가 다 다를 수 있습니다.
      그래서 제 생각에는 디테일하게 들어가면 테이블을 별도로 나눠야 할 것 같습니다.

      (개인적으로 실력이 쌓이고 연차가 쌓이면서 DB설계도 해보면 좋겠는데 이런저런 핑계로 만들지 못하고 있어 아쉽습니다...)