강의

멘토링

커뮤니티

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

열심히공부하자님의 프로필 이미지
열심히공부하자

작성한 질문수

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

시퀄라이즈 sync + nodemon

모델 관계정의시 사용하는 as문이 햇갈립니다.

작성

·

188

0

//user

db.User.belongsToMany(db.Post, { through: 'Like', as: 'Liked' });

//post

db.Post.belongsToMany(db.User, { through: 'Like', as: 'Likers'});

user-post 간 like 테이블은

belongsToMany 관계를 설정할때 사용했던 as의 `Liked`, `Likers`가 아닌 PostId, UserId 로 생성이 되어있습니다.

//post

db.Post.belongsTo(db.Post, { as: 'Retweet' });

하지만 post - post 간에 retweet 설정의 결과를 보면

as의 `Retweet`을 사용하여 `RetweetId`로 생성이 되어있습니다.

like도 retweet과 마찬가지로 `Liked`, `Likers`로 생성되어야 하는거 아닌가요?

답변 1

0

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

belongsToMany는 belongsTo와 완전히 다르다고 생각하셔야 합니다. belongsToMany의 경우에는

as: 'Liked', foreignKey: 'Likers'

as: 'Likers', foreignKey: 'Liked',

이렇게 foreignKey를 넣어주어야 합니다. 또한 as랑 foreignKey랑 서로 반대를 가리키고 있어야 합니다.

열심히공부하자님의 프로필 이미지
열심히공부하자

작성한 질문수

질문하기