• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

n:m 관계 정의 시 궁금점

21.12.26 17:07 작성 조회수 112

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 모델을 넣으셔도 됩니다.

권범수님의 프로필

권범수

질문자

2021.12.27

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

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