首页 文章

如何使用Sequelize Build 关系

提问于
浏览
0

我希望有人可以帮我正确设置Sequelize中的关系 . 我相信我已经正确设置了模型,但我不确定,因为我之前从未使用过api,文档很混乱 . 我附上了一张我认为表格应该是什么样子的图片,下面是我认为应该发生的一些代码片段,但我无法分辨 .

关于我的数据库设计是否准确的任何指示,以及我的续集关联(hasMany,belongsTo等)是否正确将是非常有帮助的!

用户模型

'use strict';

module.exports = function(sequelize, DataTypes) {

  //Define the user table, and its columns, data types, attributes
  var User = sequelize.define('User', {
    user_id: {...},
    user_name: {...}
   },    
   {
     //Define the constraints, such as foreign key
     classMethods:{
        associate: function(models) {
            User.belongsToMany(models.Group);
            User.hasMany(models.Old_Password);
        }
     }
   }); 

  return User;
};

角色模型

'use strict';

module.exports = function(sequelize, DataTypes){

  var Role = sequelize.define('Role',{
    role_id: {...},
    role_name:{...}
   },
   {
   //Define the constraints, such as foreign key
     classMethods:{
        associate: function(models){
            Role.belongsTo(models.User);
        }
     }
  }); 

  return Role;
};

团体模型

'use strict';

module.exports = function(sequelize, DataTypes){

  var Group = sequelize.define('group', {
    group_id: {...},
    group_name: {...},                
   });

  return Group;
};

密码模型

'use strict';

module.exports = function(sequelize, DataTypes){

  //Define the table, and its columns, data types, attributes
  var Old_Password = sequelize.define('Old_Password', {
    old_password_id: {...},
    old_password_value: {...}
   },    
  {
  //Define the constraints, such as foreign key
    classMethods:{
        associate: function(models){
            Old_Password.hasOne(models.User);
        }
    }
  }); 

  return Old_Password;
};

Sample Table Setup

1 回答

  • 0

    数据库设计准确 . 但是,您需要定义 UserGroup 之间的关系 . 这是一个多对多关系,因此您需要为 User 模型添加另一个约束:

    classMethods:{
      associate: function(models){
        User.belongsToMany(models.Group, {
          // Define the join table
          through: 'user_group',
          // Define the foreign key
          foreignKey: 'group_id'
        });
        models.Group.belongsToMany(User, {
          through: 'user_group',
          foreignKey: 'user_id'
        });
        User.hasMany(models.Old_Password);
      }
    }
    

相关问题