인프런 커뮤니티 질문&답변
모델 관계정의시 사용하는 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랑 서로 반대를 가리키고 있어야 합니다.




