본문 바로가기

CS 잡지식

다중성(1:1, 1:多 등)은 DB [Table]를 설계하기 위한 것이다.

위 그림은 Member Table : Team Table = 多 :   1 관계에 있음을 뜻한다.

이 의미는 [1개의 팀에는 여러 멤버들이 소속된다]이다. 

예를 들어 보자

메시, 호날두(Member들)가 같은 하나의 팀(맨유) 소속이고(多:1),

손흥민, 김민재(Member들)가 같은 하나의 팀(바르셀로나) 소속(多:1)이라고 해보자.

 이때 DB의 Table은 Member Table 2개와 Team Table 2개가 있을 것이며 구체적인 Table은 아래와 같다.

====================================================================

Member Table 1

Member_ID = 10번

Member_ID = 11번

USERNAME = 메시

USERNMAE = 호날두

TEAM_ID(FK) = 1 ( Team Table 중 Team_ID가 1인 Table을 가리키고 있음)

Team Table (맨유)

TEAM_ID = 1(PK)

TEAM_NAME = 맨유

====================================================================

Member Table 2

Member_ID = 10번

Member_ID = 11번

USERNAME = 손흥민

USERNMAE = 김민재

TEAM_ID(FK) = 2 ( Team Table 중 Team_ID가 2인 Table을 가리키고 있음)

Team Table (맨유)

TEAM_ID = 2(PK)

TEAM_NAME = 바르셀로나

====================================================================

-> 다중성을 고려하여 DB Table을 설계를 하게 되면, 위와 같이 의미가 있는 논리적 단위로 Member Table과 Team Table의

연관 관계를 설정할 수가 있다. 

( 이제까지 나는 Table의 이름이 같으면, 그 이름으로 단 1개만의 Table이 생성되는 줄 알았다. 그러나 DB Table은 설계 시, 다중성을 고려해서 설계를 하면 위와 같이 굉장히 직관적인 Table 설계를 할 수 가 있었다)