관계형 database이다 보니 table간 data들의 관계를 맺어줘야 하는데, 관계를 설정할 때 알아야할 것이 있다.
1 : 1 관계
User.hasOne(db.Profile)
- User는 하나의 Profile을 갖는다.
Profile.belongsTo(db.User)
- Profile은 다수의 User에게 하나씩 속해있다.
1 : N 관계
User.hasMany(db.Post)
- User는 다수의 Post를 가지고 있다.
Post.belongsTo(db.User)
- Post는 다수의 User에 속해있다.
N : N 관계
N : N 관계의 경우는 중간 테이블의 이름을 through를 통해 명시해 주어야 한다.
User.belongsToMany(db.Project, {through: UserProject})
Project.belongsToMany(db.User, {through: UserProject})
1. models/user.js
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
...
// 관계 설정 associate
User.associate = (db) => {
// User는 여러개의 ~를 가질 수 있다
db.User.hasMany(db.Post);
db.User.hasMany(db.Comment);
};
return User;
};
위의 코드와 같이 아래에 associate로 관계를 설정할 수 있다.
'node.js' 카테고리의 다른 글
[node.js - express]회원가입 구현하기 (0) | 2022.01.16 |
---|---|
sequelize 실행하기 (0) | 2022.01.16 |
sequelize model 만들기 (0) | 2022.01.16 |
MySQL과 sequelize 연결하기 (0) | 2022.01.16 |
express 라우터 분리하기 (0) | 2022.01.16 |