더북(TheBook)

양쪽 모델에 모두 belongsToMany 메서드를 사용하며, N:M 관계 특성상 새로운 모델이 생성됩니다(그림 7-59). through 속성에 그 이름을 적으면 됩니다. 새로 생성된 PostHashtag 모델에는 게시글과 해시태그의 아이디가 저장됩니다. 9장의 예제에서 N:M 관계를 사용하는 것을 볼 수 있습니다.

▲ 그림 7-60 N:M 관계 테이블

N:M에서는 데이터를 조회할 때 여러 단계를 거쳐야 합니다. #노드 해시태그를 사용한 게시물을 조회하는 경우를 생각해보겠습니다. 먼저 #노드 해시태그를 Hashtag 모델에서 조회하고, 가져온 태그의 아이디(1)를 바탕으로 PostHashtag 모델에서 hashtagId가 1인 postId들을 찾아 Post 모델에서 정보를 가져옵니다.

자동으로 만들어진 모델들도 다음과 같이 접근할 수 있습니다.

db.sequelize.models.PostHashtag

다음 절에서는 모델들을 사용해 CRUD 작업을 진행하겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.