inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] React로 NodeBird SNS 만들기

시퀄라이즈 관계 설정하기

시퀄라이즈 through 테이블 질문드립니다.

해결된 질문

643

사랑스러운 다람쥐

작성한 질문수 0

0

안녕하세요. 강의를 보며 이것저것 만들어 보는 중에 DB에 대한 이해가 부족해서 질문을 드립니다

강의에서 유저와 유저 사이의 팔로우 관계를 통해 Follow라는 through 테이블이 만들어졌고 구조가 이런식인데요

FollowingId     FollowerId

           1                    2

이 Follow 테이블을 임의로 정의할 때,

FollowingId     FollowerId     Following     Follower

           1                    2               멍멍이          야옹이

이런식으로 FollowingId와 FollowerId에 해당하는 유저의 닉네임을 Follow 테이블의 컬럼으로 가져올 수 있는 방법이 있는지 궁금합니다.ㅜㅜ

감사합니다.

Next.js redux express nodejs react

답변 8

0

사랑스러운 다람쥐

그게 문제였네요ㅜㅜ

through 테이블이라 자동으로 엮일 줄 알고 제가 associate를 간과했던 것 같습니다 제로초님

귀한 시간 내주셔서 정말정말 죄송하고 감사드립니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0

제로초(조현영)

네 Follow.associate에 User가 없어서 에러나는 것입니다.

Follow에서 User를 include하는 경우에는 Follow.associate에 User가 들어있어야 합니다.

User에서 Follow를 include한다면 User.associate에 Follow가 들어있어야 하고요.

0

사랑스러운 다람쥐

User모델에서 이렇게 설정했는데도 왜 그렇게 뜰까요?ㅜㅜ

이건 Follow.js 모델입니다.

요건 Group.js입니다.

설계가 잘못되었을까요??ㅠㅠㅠ

0

제로초(조현영)

User.belongsToMany(User, { through: Follow, as: ..., foreignKey: ... })를 안 하신 것 아닌가요? Follow 모델이 User와 연결되지 않았다고 뜨네요.

또한 Follow 모델에서도

Follow.belongsTo(User, { as: 'Follower', foreignKey: 'FollowerId' });
Follow.belongsTo(User, { as: 'Following', foreignKey: 'FollowingId' });

가 되어있어야 합니다.

사실 지금 Group과 Follow와 User 관계가 매우 이상합니다. Follow관계에 Group이 껴있어야 하는 이유가 없지 않나요?

어떤 사람이 저와 가족 관계라면 그냥 Group에만 가족에만 표시해두면 됩니다. id: 5, relationship: 'family' 이런 식으로요. 꼭 그게 follow 관계와 엮어있어야하는지 모르겠네요. 설령 Group을 팔로워/팔로잉 관계가 맺어진 사람만 지정할 수 있다고 하더라도요.

Group 모델은 어떤 식으로 구성되어있는지 보여주세요.

0

사랑스러운 다람쥐

먼저 유저 정보를 가져오는 GET /user입니다.

다음은 Follow 테이블의 구조입니다.

다음과 같은 에러가 발생합니다. ㅠㅠ

0

제로초(조현영)

include해서 Follow를 가져온 다음에 다시 include로 User를 하면 됩니다.

현재 include를 어떻게 하고 있는지 보여주세요.

0

사랑스러운 다람쥐

음 제가 강의를 보며 개인 프로젝트를 만들어 보고 있는 중인데... 제가 팔로우 중인 유저들을 친구, 가족, 동료 등 나만의 그룹으로 묶으려고 합니다.

제가 생각한 것은, 먼저 Group이라는 모델을 만든 후에

User와 Group을 User.hasMany(Group) 관계로 맺어주고,

유저 간의 팔로우를 나타내는 Follow 모델을 Group 모델에 속하도록 Group.hasMany(Follow) 관계로 했습니다.

이렇게 하니 Group모델에서 include를 통해 Follow 테이블은 가져올 수 있는데, FollowingId에 해당하는 유저의 닉네임은 가져올 수가 없어서요..ㅠㅠㅠ

제가 잘못 설계한 것인지 궁금합니다

0

제로초(조현영)

include를 하면 되는데 꼭 테이블 안의 컬럼으로 만드셔야 하나요?

넥스트 버젼 질문

0

77

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

174

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

372

1

sudo certbot --nginx 에러

0

1274

2

Minified React error 콘솔에러 (hydrate)

0

469

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

326

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

287

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

237

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1