강의

멘토링

커뮤니티

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

권범수님의 프로필 이미지
권범수

작성한 질문수

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

n:m 관계 정의 시 궁금점

작성

·

190

0

n:m 관계 정의 시에 궁금한 점이 있어서 질문 남깁니다.

 

동적인  카테고리가 있는 게시판의 경우

유저가 해당 카테고리에 게시글을 쓰는 걸 구현하기 위해서

category 라는 테이블을 만들고 

user가 category에 여러 게시글을 쓸 수 있고 여러 카테고리에 게시글을 쓸 수 있어서 n:m 관계라고 정의했습니다.

user - board - category 이런 식으로 되어있을 때

board에서 user의 정보와 category의 정보가 필요할 때 각각을 가지고 올 수 있어야 하는데
sequelize에서는 관계가 없기 때문에 가져올 수 없다고 하더군요

 

이런 경우에는 user-category n:m으로 관계를 정의 하는게 아닌

user-board n:1

board-category 1:n 으로 정의하는 것이 맞을까요??

답변 1

0

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

1:n 두 개로 하셔도 되고요. (n:m이 원래 1:n 두 개 이므로)

belongsToMany의 through에 board 모델을 넣으셔도 됩니다.

권범수님의 프로필 이미지
권범수
질문자

후자로 했었는데 이경우에 
Board.findAll 할때 user랑 category를 include했을 때
EagerLoadingError [SequelizeEagerLoadingError]: Category is not associated to Board!
이런 에러가 뜹니다.
이런 식으로 board를 select 할 경우가 있으면 선자로만 해야되는지가 궁금합니다.

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

후자로 한 뒤에 Board-User, Board-Category를 다시 hasMany-belongsTo로 추가 관계 정의 해주시면 됩니다.

권범수님의 프로필 이미지
권범수

작성한 질문수

질문하기