[TIL] 데이터 모델링

Haesol Choi·2020년 9월 17일
14

TIL

목록 보기
3/3
post-thumbnail

현재 프로젝트 코칭 기간인데 다들 데이터 모델링하는 부분을 어려워 해서 강사님께서 쇼핑몰에 들어갈 데이터들을 데이터 모델링 하는 것을 예제로 강의 해주셨다.

1. 쇼핑몰 데이터베이스에 필요한 사항들을 정리

  • 회원이 상품을 구매한다
  • 회원이 상품을 카트에 담을 수 있다
  • 회원정보 : 회원아이디, 비밀번호, 성명, 주소, 연락처
  • 상품 : 상품아이디, 상품명, 이미지, 가격
  • 회원이 요구하는 배송지에 배송을 한다
  • 회원을 0 또는 1곳 이상의 배송지를 등록할 수 있다
  • 배송지 : 배송지 아이디, 회원 아이디, 우편번호, 연락처, 주소, 기본여부
  • 회원이 구매할때 카트에 상품을 담는다
  • 카트 : 회원아이디, 상품아이디, 수량, 금액, 날짜
  • 회원은 구매시 신용카드로 구매한다
  • 신용카드 : 신용카드 아이디, 회원 아이디, 카드사, 카드번호, 유효기간
  • 회원은 0 혹은 1장이상의 신용카드를 등록한다
  • 주문 : 회원 아이디, 주문 일자, 상품명, 수량, 금액, 배송지 아이디, 카드아이디

2.위 내용을 요구사항과 엔티티로 구분한다.

요구 사항

  • 회원이 상품을 구매한다
  • 회원이 상품을 카트에 담을 수 있다
  • 회원은 구매시 신용카드로 구매한다
  • 회원은 0 혹은 1장이상의 신용카드를 등록한다
  • 회원이 요구하는 배송지에 배송을 한다
  • 회원을 0 또는 1곳 이상의 배송지를 등록할 수 있다

엔티티

  • 회원정보 : 회원아이디, 비밀번호, 성명, 주소, 연락처
  • 상품 : 상품아이디, 상품명, 이미지, 가격
  • 배송지 : 배송지 아이디, 회원 아이디, 우편번호, 연락처, 주소, 기본여부
  • 카트 : 회원아이디, 상품아이디, 수량, 금액, 날짜
  • 신용카드 : 신용카드 아이디, 회원 아이디, 카드사, 카드번호, 유효기간
  • 주문 : 회원 아이디, 주문 일자, 상품명, 수량, 금액, 배송지 아이디, 카드아이디

3. ERD 만들기

ERD 툴은 ERDcloud를 이용했다.

요구사항 분석을 참고하여 엔티티들을 테이블로 만들고 1:1, 1:n, n:m으로 관계를 생성해준다.
관계를 생성할 때 한쪽 테이블의 외래키가 다른쪽 테이블의 기본키가 되는경우 식별관계, 일반 칼럼이 되는경우 비 식별관계로 설정한다.

장바구니 - 상품의 경우 n:m의 관계이기 때문에 장바구니_상품이라는 관계테이블을 생성하였는데

이렇게 만들경우 백엔드로 구현할때 조인이 많아져 쿼리문이 복잡해져서 구현이 힘들어지므로 장바구니_상품 테이블에 장바구니의 칼럼들을 추가해주고(역정규화) 장바구니 테이블을 삭제 해준다

그럼 위와 같이 ERD가 완성된다.

0개의 댓글