더북(TheBook)

이미 눈치챘을지도 모르지만, Comment 모델이 조금 이상합니다. users 테이블과 연결된 commenter 컬럼이 없습니다. 이 부분은 모델을 정의할 때 넣어도 되지만, 시퀄라이즈 자체에서 관계를 따로 정의할 수 있습니다. 이에 대해서는 조금 뒤에 알아봅니다. 모델을 생성했다면 models/index.js와 연결합니다.

models/index.js

const Sequelize = require('sequelize');
const User = require('./user');
const Comment = require('./comment');
...
db.sequelize = sequelize;

db.User = User;
db.Comment = Comment;

User.initiate(sequelize);
Comment.initiate(sequelize);

User.associate(db);
Comment.associate(db);

module.exports = db;

db라는 객체에 User와 Comment 모델을 담아뒀습니다. 앞으로 db 객체를 require해서 User와 Comment 모델에 접근할 수 있습니다. User.initiateComment.initiate는 각각의 모델의 static initiate 메서드를 호출하는 것입니다. 모델.init이 실행되어야 테이블이 모델로 연결됩니다. 다른 테이블과의 관계를 연결하는 static associate 메서드도 미리 실행해둡니다.

이제 users 테이블과 comments 테이블 간의 관계를 설정해봅시다.

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