[Database] Entity Relationships (3)

오늘은 DB Relationships에서 개인적으로 가장 이해하기가 껄끄러웠던 Recursive Relationships에 대해 정리한다.

 

이전 글

https://baram1ng.tistory.com/28

 

Entity Relationships (2)

앞서 Entity의 개념에 대해 설명했는데, 이번엔 Weak/Strong Entity, 그리고 (non)-ID-dependent 에 대해 간략하게 설명해보고자 한다. 이전 글https://baram1ng.tistory.com/27 Entity Relationships (1)DB를 설계할 때, 가장

baram1ng.tistory.com


Recursive Relationships(재귀적 관계)

 

Recursive Relationships은 엔터티가 자기 자신과 관계를 갖는 것을 의미한다. Recursive Relationships은 앞선 Relationships와 같이 1:1, 1:N, N:M 관계를 모두 가질 수 있다. 이해하기 어려울 수 있으니, 예시를 통해 살펴보자.

 

 

1:1 recursive relationship

 

1:1 recursive relationship의 예시로 직원과 직속 상사의 관계를 생각할 수 있다. 직원의 엔터티가 존재한다고 할 때, 각 직원은 한명의 직속 상사를 가지고 직속 상사는 한명의 직원을 가질 수 있다. 즉, 조직도 내에 직원 엔터티 간의 1:1 recursive relationship이 생겨날 수 있다.

 

 

1:N recursive relationship

 

아래 예시(Customer)에서도 Recursive Relationships를 확인할 수 있다 Customer가 있다고 가정하고 추천인 이벤트를 통해 할인 쿠폰을 지급하는 상황을 가정하자. 한 고객이 여러 명의 사람에게 추천인 ID를 입력하여 할인 쿠폰을 받을 수 있다고 생각하면, 추천 개념으로  한 Customer는 여러 명에게 추천을 받을 수 있다고 생각할 수 있다. 근데, 추천 하는 사람은 한 customer 밖에 매칭이 될 수가 없으니 referred by 1:N관계가 성립이 된다.

 

 

N:M recursive relationshop

 

N:M recursive relationship의 예시로 SNN 친구관계의 예시를 들 수 있다. SNN의 각 사용자는 여러 명의 친구가 등록가능하며, 또 여러 명의 친구에게 등록당할 수 있다. 즉, User 엔터티가 존재한다고 할 때, User A가 User B와 C를 친구로 Follew할 수 있으며, User A는 User B와 C에게 Followed 당할 수 있는 N:M recursive 관계가 생성이 될 수 있다.