본문 바로가기

CS 과목(CS科目)/데이터 베이스(データベース)

DB 설계 시, 多 관계에 있는 Table에 FK가 있어야 하는 이유

사전 지식 : FK는 단 1개의 TABLE만을 가리킬 수가 있다.( 위 그림은 여러 Member들(Member Table)이 하나의 Team(1개의 Team Table)에 소속되어 있음을 뜻함)

Member : Team == 多 : 1의 관계이다.

즉, 여러 Member들이 하나의 Team(하나의 Team Table에 소속)에 소속될 수 있다는 것이다.

만약 Member Table에 TEAM_ID가 FK로 있어야 2명 이상의 Member들이 Table에 들어 왔을 때, 

그 2명 이상의 Member들이 하나의 Team 소속(하나의 Team Table을 가리키고 있다는 것을)이라는 것을, TEAM_ID(FK)로 

나타낼 수가 있다. 

반대로 만약, FK가 Team Table의 MEMBER_ID였다면, 해당 팀 소속의 Member 인원 수만큼 Team Table을 만들어서

MEMBER_ID(FK)을 일일히 각 Member Table를 가리키도록 해야 하므로 DB를 잘못 설계를 한 것이다.