더북(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 테이블 간의 관계를 설정해봅시다.