카테고리 없음

JPA following, follower 관계

흰색남자 2022. 7. 21. 16:55

N:M 관계를 사용하지 않고 following follower 관계를 어떻게 구현할까??

following, follower 관계를 사용한 예시 중 하나는 채팅방이 있을 수 있다.

사용자는 여러개의 채팅방에 참여가능하고, 채팅방에는 여러명의 사용자가 존재한다.

 

1. N : M 의 문제점.

일단 RDMS에서는 다 대 다 관계를 표현이 불가능하다.

 

 

왼쪽에서는 N:M을 표현해보았다.

사용자 테이블의 ID가 PK역할을 못하는 것을 볼 수 있고, 채팅 테이블도 마찬가지이다.

 

N:M관계를 왼쪽처럼 풀어서 보면 사용자, 그룹, 채팅 3가지 테이블의 ID가 PK역할을 충실히 하는 것을 볼 수 있다.

 

 

2. spring-jpa를 이용한 N:M >> N:1 + M:1 구현방법

지금 하고 있는 개인 토이프로젝트에서 N:M 문제를 해결해보았다.

맨 위에서 설명하였듯이, 중간에 테이블을 하나 삽입하여 1:N, 1:M으로 풀어내었다.