반응형
ERD
'Entity Relationship Diagram'
엔티티들의 관계를 나타낸 도표이다.
ERD의 규칙은 다음과 같다.
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 관계와 유사하다. 다만 서로 다른 테이블이 아니라는 점에서 차이가 있다.
반응형
'TIL > 코드스테이츠 TIL' 카테고리의 다른 글
코드스테이츠 소프트웨어 엔지니어링 부트캠프 87 (0) | 2021.10.13 |
---|---|
코드스테이츠 소프트웨어 엔지니어링 부트캠프 86 (0) | 2021.10.12 |
코드스테이츠 소프트웨어 엔지니어링 부트캠프 83 (0) | 2021.10.10 |
코드스테이츠 소프트웨어 엔지니어링 부트캠프 82, SQL Intro (0) | 2021.10.09 |
코드스테이츠 소프트웨어 엔지니어링 부트캠프 81 (0) | 2021.10.08 |