위 그림은 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 설계를 할 수 가 있었다)
'CS 잡지식' 카테고리의 다른 글
지연 로딩(Lazy)의 단점 : (N+1) Problem과 Solution (0) | 2023.04.22 |
---|---|
Git,Git Hub 기본적인 사용법 (0) | 2023.04.12 |
동적(dynamic)의 의미!!! (0) | 2023.02.25 |
클라이언트와 서버에 대한 오해, 그리고 Proxy Pattern과 Decorator Pattern....... (0) | 2023.02.23 |
스프링 Bean의 등록 방법 (0) | 2023.02.22 |