티스토리 뷰

DB

1 대 1 vs 1 대 多

무한경쟁시대 2022. 1. 30. 19:47

[Designing Data-Intensive Applications]

p30 - p31

1. 프로필에서 고유 식별자는 user_id로 했고 first_name, last_name 등과 같은 것은 1대1 관계.

그래서 users테이블에 컬럼으로 모델링 할 수 있다.

2. 하지만, 경력(직위)에 넣을 내용은 하나 이상이 될 수 있으며, 학력 기간과 연락처 정보도 다양하다.

사용자와 이들 항목은 1 대 多 관계이다. 이런관계는 전통적 SQL모델에서는

정규화 표현은 직위, 학력, 연락처 정보를 개별 테이블에 넣고, 외래키로 users테이블을 참조.

 

[users테이블]

user_id first_name last_name summary
251 형아 토리 시바견 집사

 

[positions 테이블]

id user_id job_title organization
458 251 Co-chair tory&sery F...

 

[education 테이블]

id user_id school_name start end
807 251 Harvard University 1973 1975
806 251 Lakeside School,
Seattle
NULL NULL