관계형 데이터베이스 1:1, 1:N, N:N

김예랑·2021년 6월 15일
0

1. 1:1

테이블간 관계가 1:1인 경우
ex) 한 유저는 하나의 주민번호만 가지고 하나의 주민번호도 하나의 유저만 가지므로 1:1 관계.

주민번호 테이블의 user_id 컬럼의 값으로 유저테이블의 id(Primary Key)를 찾는다.
=>
김씨의 주민번호: 930708-xxxxxxx
이씨의 주빈번호: 890312-xxxxxxx
박씨의 주민번호: 811211-xxxxxxx

Users Table
id Name
1 김씨
2 이씨
3 박씨
주민번호 Table
id 주민번호 user_id
1 890312-xxxxxxx 2
2 811211-xxxxxxx 3
3 930708-xxxxxxx 1

2. 1:N

테이블간 관계가 1:N인 경우
ex) 한 유저는 다수의 소지품을 소유할 수 있지만 소지품의 주인은 한 명이므로 1:N 관계. (그런 관계라고 하자)

소지품 테이블의 user_id 컬럼의 값으로 유저테이블의 id(Primary Key)를 찾는다.
=>
김씨의 소지품: 에어팟, 아이패드
이씨의 소지품: 레고 열쇠고리, 까르띠에 열쇠고리
박씨의 소지품: 에어맥스

Users Table
id Name
1 김씨
2 이씨
3 박씨
소지품 Table
id 물건 user_id
1 에어맥스 3
2 에어팟 1
3 아이패드 1
4 레고 열쇠고리 2
5 까르띠에 열쇠고리 2

3. N:N

테이블간 관계가 N:N인 경우
ex) 한 유저는 다수의 컨텐츠를 시청할 수 있고, 한 컨텐츠를 시청한 유저도 다수가 될 수 있으므로 N:N 관계.

  • N:N 관계인 경우에는 테이블에서 컬럼값의 중복을 막기 위해 중간테이블을 사용한다.

중간테이블의 user_id 컬럼의 값으로 유저테이블의 id(Primary Key)를,
중간테이블의 content_id 컬럼의 값으로 컨텐츠테이블의 id(Primary Key)를 찾는다.
=>
김씨의 시청목록: 나의히어로아카데미아, 월드 트리거
이씨의 시청목록: 귀멸의 칼날
박씨의 시청목록: 나의 히어로 아카데미아

귀멸의 칼날을 시청한 유저: 이씨
나의 히어로 아카데미아 시청 유저: 김씨, 박씨
도쿄구울 시청 유저:
월드 트리거 시청 유저: 김씨

Users Table
id Name
1 김씨
2 이씨
3 박씨
컨텐츠 Table
id 컨텐츠
1 귀멸의 칼날
2 나의 히어로 아카데미아
3 도쿄구울
4 월드 트리거
유저_컨텐츠 Table (중간 테이블)
id user_id content_id
1 1 2
2 1 4
3 2 1
4 3 2
profile
안녕하세요. 백엔드 애송이 백송이 김예랑 입니다.

0개의 댓글