Spring boot 중고거래 쇼핑몰 사이트 만들기 프로젝트 6 (ERD)

전승재·2023년 8월 9일
0
post-thumbnail

아무래도 프로젝트를 하면서 제대로 정리를 하고 넘어가야 할 것 같아서 ERD를 그리고, 추가하면서 진행하려고 한다.
장바구니기능을 추가하고 싶은데 머릿속으로만 고민하다가 쓰거나 보면서 진행하는게 더 좋을 것 같아서 ERD를 그리려고 한다.
또한 장바구니를 추가하면서 ERD가 절실해졌다.
시각적으로 이해할 수 있는 자료가 필요했기 때문이다.

ERD란?

ERD란 Entity Relationship Diagram의 약어이다.
그 이름에서 알 수 있듯이 엔티티간의 관계를 다이어그램화 한 것이다.
예를 들어 사용자와 상품에 관계를 정리하면 아래와 같을 것이다.

위에서 볼 수 있듯이 상품은 회원 식별 아이디를 외래키로 가지면서 누가 이 상품을 등록했는지를 저장할 수 있다.
또한 1대N의 관계를 가진다. 사용자는 여러 상품을 등록할 수 있지만 상품은 오직 하나의 사용자에게만 등록될 수 있기 때문이다.

승재 쇼핑몰의 회원, 상품, 장바구니 ERD


하나의 사용자에 하나의 장바구니가 매칭되기 때문에 1대1의 관계를 가진다!
이 때 식별관계라고 할 수 있겠다.

점선은 비식별, 실선은 식별관계이다.

  • 식별 관계란 부모테이블이 없다면 독립적으로 생성될 수 없는 자식테이블을 말한다.
    또한 이 자식테이블은 부모테이블의 기본키를 자신의 기본키로 사용한다.
  • 비식별 관계란 부모테이블 없이도 독립적으로 생성될 수 있는 자식테이블의 관계일 때를 말한다.
    이 자식테이블은 부모테이블의 기본키를 외래키로 사용하며 부모와의 의존성이 낮아서 좀 더 자유롭다.

하지만 우리의 회원은 하나의 장바구니를 가지고, 그 장바구니는 회원이 없다면 생성될 수 없기 때문에 식별관계로 등록했다.

이제 장바구니와 상품의 관계를 보자.
상품은 여러개의 장바구니에 들어가 있을 수 있기 때문에
상품 : 장바구니 = 1 : N 의 관계를 가지고 비식별 관계이다.
상품의 기본키인 itemId가 장바구니에 외래키로 생성된 것을 볼 수 있다.

이렇게 ERD를 한번 그려봤고, 놓친 부분은 계속 프로젝트 진행하면서 추가하도록 하겠다!
이제 다음에는 MySQL을 연동해서 실제 데이터를 데이터베이스에 저장하고 조회할 수 있도록 Repository 구현체들을 바꿔주고 Entity들도 바꿔줄 것이다.

0개의 댓글