본문 바로가기
TIL/코드스테이츠 TIL

코드스테이츠 소프트웨어 엔지니어링 부트캠프 85, ERD

by 안뇽! 2021. 10. 12.
반응형

ERD

'Entity Relationship Diagram'

엔티티들의 관계를 나타낸 도표이다.

ERD의 규칙은 다음과 같다.

https://mjn5027.tistory.com/43

A는 B로 구성되어 있다 라는 말은 A가 부모테이블, B가 자식테이블 이라는 뜻으로 이해해도 된다.

관계선의 종류

  • 실선 :
- 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우
- 부모가 있어야 자식이 생기는 경우
  • 점선 :
- 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
- 부모가 없어도 자식이 생기는 경우 

두 테이블의 관계

 

1 : 1 관계 

 

User테이블의 phone_id 는 외래키로써 Phonebook테이블의 phone_id와 연결되어 있다.

 

각 전화번호가 한명의 유저와 연결되어 있기 때문에 1:1관계라고 한다.

 

보통 1:1 관계는 사용하지 않는다. 1:1로 나타낼 수 있는 관계라면 User테이블에 phone_id를 대신해 phone_number를 저장하는게 나을 수 있다.

 

 

1 : N 관계

하나의 테이블이 여러 다른 테이블과 연결된 경우

유저 한명이 여러 전화번호를 가질 수는 있지만, 여러 유저가 하나의 전화번호를 가질 수는 없다.

 

N : N 관계

여러 레코드가 다른 테이블의 여러 레코드와 관계가 비슷한 경우이다.

Join테이블을 만들어 관리한다.(중간 다리 역할을 하는 테이블을 하나 더 만든다는 뜻)

customer_package 테이블에서는 고객 한 명이 여러 개의 여행 상품을 가질 수 있고, 여행 상품 하나를 여러 명의 고객이 가질 수 있다.

 

Join테이블을 위한 기본키(여기선 cp_id)는 반드시 있어야 한다.

 

자기참조 관계

 

추천인을 예로 들어 보자.

 

여러 명이 어떤 한 명을 추천인으로 등록할 수 있다.

 

자기참조관계는 1 : N 관계와 유사하다. 다만 서로 다른 테이블이 아니라는 점에서 차이가 있다.

반응형