Inflearn brand logo image

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

김상형님의 프로필 이미지
김상형

작성한 질문수

비전공자도 이해할 수 있는 DB 설계 입문/실전

[실습] 화면 UI 디자인을 보고 DB 설계해보기 - JSCODE 게시판

사용자 테이블 과 팔로우 테이블 과의 관계

해결된 질문

작성

·

120

0

사용자 테이블 과 팔로우 테이블 과의 관계를 다대다 관계라고 할 수 있을까요?
중간 테이블로 풀어내는 다대다 관계랑은 조금 다른 것 같아서 이런 경우에는 명칭이 어떻게 되는지 궁금합니다

답변 2

1

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 상형님~~

팔로우 같은 경우는 특이하게도 사용자 <-> 사용자끼리 다대다 관계입니다.

다대다 관계를 해결하기 위해 중간 테이블을 끼워서

아래와 같은 형태로 풀어냅니다!

사용자 <-> 팔로우 <-> 사용자

(실제 구현 시에는 사용자 <-> 팔로우 형태로 테이블을 설계하게 됨)

이 때, 중간 테이블을 생성해서 다대다 관계를 풀어내보면

사용자팔로우 테이블은 일대다 관계를 가지게 됩니다.

강의에서 알려드린 방법으로 따져본다고 하더라도

사용자팔로우 테이블은 일대다 관계를 가지게 됩니다.


한 명의 사용자가 여러 개의 팔로우를 가질 수 있다.

하나의 팔로우는 한 명의 사용자에 의해 행해진다.


엄격하게 따질 때는 사용자 테이블과 팔로우 테이블 관계를 일대다라고 표현을 하지만,

사람들이 주로 얘기할 때는

"팔로우 기능은 다대다 관계를 가지고 있어"라고 표현하는 편입니다.

이 말을 정확히 표현하자면 "팔로우 기능을 구현하기 위해 관계를 살펴봤는데,

사용자 테이블과 사용자 테이블끼리 다대다 관계를 가지고 있네"라고 표현을 해야 합니다.

 

다양한 관점으로 설명을 드렸는데

궁금하신 부분에 대해 제가 답변을 잘 드렸는 지 모르겠네요...ㅎㅎ

추가로 궁금하신 점 생기시면 질문 또 남겨주세요~~

김상형님의 프로필 이미지
김상형
질문자

친절한 답변 감사해요..! 잘 이해되었어요

0

안녕하세요, 인프런 AI 인턴입니다. 김상형님께서 질문하신 “사용자 테이블과 팔로우 테이블과의 관계”에 대해 말씀드리겠습니다.

사용자 테이블과 팔로우 테이블의 관계는 일반적으로 다대다(N:M) 관계로 볼 수 있으며, 소셜 미디어 플랫폼에서 자주 볼 수 있는 관계 유형입니다. 사용자는 여러 명의 다른 사용자를 팔로우할 수 있고, 동시에 여러 명의 다른 사용자에게 팔로우될 수 있기 때문입니다.

  • 중간 테이블 사용 이유: 다대다 관계는 복잡한 데이터를 효율적으로 관리하기 위해 중간 테이블을 활용하여 풀어냅니다. 이를 통해 각 사용자 간의 팔로우 관계를 저장할 수 있는 별도의 테이블을 구성할 수 있습니다.

  • 명칭에 대한 이해: 사용자와 팔로우 관계를 나타내는 데이터 모델에서 중간 테이블을 “팔로우”, 또는 “following” 등으로 명명할 수 있습니다. 이 테이블은 팔로우하는 사용자와 팔로우되는 사용자에 대한 두 외래 키 컬럼을 통해 관계를 맺습니다.

두 테이블 및 중간 테이블을 구조적으로 설계하면, 사용자 간의 복잡한 상호작용을 더욱 쉽게 관리할 수 있습니다.

유사한 내용을 다룬 회신들을 통해 중간 테이블의 역할에 대해 더욱 깊이 이해할 수 있는 자료를 추천해 드립니다:

이 문서들을 확인하시면 팔로우 관계의 구조에 대해 더욱 명확한 이해를 돕는 데 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김상형님의 프로필 이미지
김상형

작성한 질문수

질문하기