node.js

sequelize 관계 설정하기

Heoky 2022. 1. 16. 17:39

관계형 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