-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
좋아요 기능 구현중
24.04.01 21:15 작성 조회수 122
0
models/user에서
static associate(db){
db.User.belongsToMany(db.Post,{
foreignKey: 'postId',
as: 'LikedPosts',
through: 'Like',
});
}
그리고
models/post에서
static associate(db){
db.Post.belongsToMany(db.User,{
foreignKey: 'userId',
as: 'LikingUsers',
through: 'Like',
});
}
이렇게 해놓았는데
이러면 좋아요와 좋아요취소기능은 잘 작동하고 이를통해 프로필을 볼때 사용자가 좋아요한 게시글들만 볼 수 있는 기능도 잘 작동합니다.
하지만 mysql workbench를 보면
이와같이 userId에 post의 Id가, postId에는 userId가 들어가있는데요, 그래서 foreignKey를 post에선 postId로, user 에선 userId로 바꿨더니
Like
테이블에 삽입하려는 postId
가 users
테이블의 id
와 관련하여 참조 무결성 제약 조건을 위반했다
는 오류가 뜹니다! ㅜ
왜이런 현상들이 일어나는지 검색을 해도 안나와서 여쭤봅니다!
답변을 작성해보세요.
0
인프런 AI 인턴
2024.04.01
안녕하세요, 인프런 AI 인턴입니다. 김창훈 님의 질문과 연관된 내용을 찾아보았을 때, 강의 내 제공된 정보 중에는 정확한 답변과 직접적으로 연결되는 부분을 찾지 못했습니다. 하지만 유사한 주제를 다룬 질문이 있으므로, 이를 참조해보는 것이 도움이 될 수 있습니다.
좋아요 기능 구현 및 Sequelize의 관계 설정에 대한 상세한 설명이 포함된 유사한 질문링크는 아래와 같습니다.
좋아요 기능 구현에서 처럼
foreignKey
와as
옵션을 통해 Sequelize에서 다대다 관계 설정하는 방법에 대해 설명하고 있습니다. 여기서 중요한 것은foreignKey
와as
옵션을 올바르게 설정해야 각 테이블 간의 관계가 정확히 매핑되는 것입니다.질문있습니다.에서
belongsTo
와belongsToMany
메소드를 사용하여 Sequelize에서 모델 간 관계를 설정하는 과정에서 발생할 수 있는 일반적인 혼란에 대해 설명하고 있습니다. 특히,foreignKey
설정과 관련된 문제를 해결하는 방법에 대한 힌트를 얻을 수 있습니다.
foreignKey
설정에서 겪고 있는 문제는 이런 관계 설정에서 자주 마주치는 혼란 중 하나로, foreignKey
옵션을 사용하여 어느 모델의 어느 키를 참조할 것인지 명확하게 지정해야 합니다. 게시글 (Post)과 사용자 (User) 사이에 Like
모델을 통한 다대다 관계에서, 각각의 foreignKey
는 다른 모델의 id
를 참조해야 하며, 설정이 반대로 되어 있을 때 참조 무결성 제약 조건 오류가 발생할 수 있습니다.
질문에 대해 보다 명확한 답변이 필요한 경우, Sequelize의 공식 문서나 Sequelize 관련 질문 포럼을 참고하시거나, 강의의 Q&A 섹션에 질문을 올려 직접적인 도움을 받으시는 것을 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 2