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

Like me black님의 프로필 이미지
Like me black

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

테이블 관계 정의하기

following follower 질문드립니다

해결된 질문

작성

·

434

0

선생님 안녕하세요

항상 좋은 강의 가르쳐주셔서 감사합니다

following follower 관련 햇갈리는 부분이 있어서 가르쳐주시면 감사하겠습니다

아래의 user.js 소스코드에서 following follower 코드를 봐주시면요

소스코드 사진에 보라색 박스와 초록색 박스를 표시했습니다

1번째로 드리고 싶은 질문은,

42, 47행의 보라색 User 가 Followings 테이블 역할을 하고

초록색 User가 Followers 테이블 역할을 한다고 이해해도 되는지 질문드리고 싶습니다

 

2번째로 드리고 싶은 질문은,

43행의 followingId가 

보라색 User(Follower테이블 역할)의 기본키인 id를 참고하는

초록색 User(Followings 테이블 역할)가 가진 외래키인지 질문드리고 싶습니다

 

3번째로 드리고 싶은 질문은,

48행의 followerId가

초록색 User(Followings 테이블 역할)의 기본키인 id를 참고하는

보라색 User(Follower테이블 역할)가 가진 외래키인지 질문드리고 싶습니다

 

긴 질문을 읽어주셔서 감사합니다

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

일단 followers followings 테이블이라는 건 없습니다. follow 테이블의 컬럼이겠죠?

중간에 생성되는 follow 테이블을 기준으로 두고 생각해보세요.

보라색이 팔로워고 초록색이 팔로잉이면 각각 팔로워아이디 팔로잉아이디가 되겠죠.

근데 왜 1번과 2,3번은 보라색 초록색 역할이 서로 반대인가요??

Like me black님의 프로필 이미지
Like me black
질문자

앗 제가 실수했습니다

저는 보라색 User를 팔로잉, 초록색 User를 팔로워로 이해했습니다
혹시 이렇게 이해해도 되는지 질문드리고 싶습니다

그림도 한번 그려보겠습니다

Like me black님의 프로필 이미지
Like me black
질문자

표 그리는 중인데, 표 다 그리면 다시 질문드리겠습니다 선생님

Like me black님의 프로필 이미지
Like me black
질문자

선생님 혹시 이렇게 이해해도 되는지 봐주시면 감사하겠습니다

정리1.

User 테이블이 자기연관관계에 있습니다

하나의 User 테이블이 자기 자신과 연관관계를 다 대 다 대응으로 가지고 있습니다

즉, Follower와 Following은 User 테이블에서 나왔습니다

 Follower와 Following은 역할의 차이입니다

 

정리2. 

Follower 테이블은 외래키로 followingid를 가지고있지 않습니다

Following 테이블은 외래키로 followId를 가지고있지 않습니다

오로지 연결 테이블 역할을 하는 Follow 테이블만이 이 필드들을 외래키로 가지고 있습니다

 

읽어주셔서 감사합니다

Like me black님의 프로필 이미지
Like me black
질문자

아 또 Follower와 Following을 테이블이라고 적었네요

하나의 User테이블이 자신과의 자기연관관계를 다대다로 가져서 생기는 역할의 차이로 이해했습니다

Follow테이블은 다대다를 잇기 위해 중간에 위치한 연결테이블이구요

User테이블의 기본키를 Follow 테이블의 외래키가 참조한다고 이해했습니다

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다.

Like me black님의 프로필 이미지
Like me black
질문자

선생님 감사합니다ㅎㅎ

Like me black님의 프로필 이미지
Like me black

작성한 질문수

질문하기