해결된 질문
작성
·
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번은 보라색 초록색 역할이 서로 반대인가요??
선생님 혹시 이렇게 이해해도 되는지 봐주시면 감사하겠습니다
정리1.
User 테이블이 자기연관관계에 있습니다
하나의 User 테이블이 자기 자신과 연관관계를 다 대 다 대응으로 가지고 있습니다
즉, Follower와 Following은 User 테이블에서 나왔습니다
Follower와 Following은 역할의 차이입니다
정리2.
Follower 테이블은 외래키로 followingid를 가지고있지 않습니다
Following 테이블은 외래키로 followId를 가지고있지 않습니다
오로지 연결 테이블 역할을 하는 Follow 테이블만이 이 필드들을 외래키로 가지고 있습니다
읽어주셔서 감사합니다
아 또 Follower와 Following을 테이블이라고 적었네요
하나의 User테이블이 자신과의 자기연관관계를 다대다로 가져서 생기는 역할의 차이로 이해했습니다
Follow테이블은 다대다를 잇기 위해 중간에 위치한 연결테이블이구요
User테이블의 기본키를 Follow 테이블의 외래키가 참조한다고 이해했습니다
앗 제가 실수했습니다
저는 보라색 User를 팔로잉, 초록색 User를 팔로워로 이해했습니다
혹시 이렇게 이해해도 되는지 질문드리고 싶습니다
그림도 한번 그려보겠습니다