인프런 커뮤니티 질문&답변

my_it_story님의 프로필 이미지
my_it_story

작성한 질문수

데이터베이스 중급(Modeling)

강사님 다대다 관계에 관해서 질문이 있습니다.

작성

·

185

0

다대다 관계를 보면 개별적인 객체간에 비즈니스가 끼어들면서 중간에 테이블을 생성하고 일대다 다대일 형식으로 풀어줘야 되는 것으로 알고있습니다.

궁금한점이 개념적으로는 객체 A가 객체 B를 포함하거나 소유하는 개념이 아닐 때 객체 A와 객체 B간에 관계를 맺어주어야 한다면 도저히 객체 A와 객체 B간의 다대다 관계가 안보여도 개별적인 객체간의 관계를 위해 중간 테이블을 생성하는 게 맞는건지요.

그리고 설명해주신 버스와 좌석처럼 has-a 관계, 포함관계일 때만 일대다 관계가 성립하는게 맞는건가요 ?

답변 1

2

이교준님의 프로필 이미지
이교준
지식공유자

다대다는 기본적으로 마스터와 마스터가 각각 존재한다는거죠. 이들간에 비즈니스가 없으면 각각 독립적으로 존재하겠죠. 그러나 둘이 엮여지는 비즈니스 모델이 나타나면 관계테이블이 나타나고 이 테이블은 두개의 마스터가 무엇을 하려고 설계되었는지를 설명하게 됩니다. 

일대다 관계는  선천적일 수 밖에 없어요. 서울시는 여러개 구가 있고 하나의 구는 여러개의 동을 가지고 있죠. 하나의 아파트단지는 여러가 동으로 되어있고 한 동은 여러 호수를 가지고 있죠. 딱 봐도 물리적으로 그럴 수 밖에 없는 그런 경우를 빼고는 무조건 관계가 없는 이질적인 마스터들만이 존재마죠. 그러나 그들간에 서로 볼일이 생기면 그것을 관계라고 하고 m:n관계이니까 관계테이블이 끼어들게 되는 겁니다

my_it_story님의 프로필 이미지
my_it_story

작성한 질문수

질문하기