Sequelize如何使用hasMany关联保存模型?

时间:2019-06-13 18:01:00

标签: sequelize.js

我有两个模型Job和Contact。一个工作可以有多个联系人。这是模态。

工作

module.exports = (sequelize, DataTypes) => {
  const Job = sequelize.define("Job", {
    job_name: DataTypes.STRING,
    due_date: DataTypes.DATE,
    assigned_hours: DataTypes.INTEGER,
    descriptions: DataTypes.STRING
  });
  Job.associate = function(models) {
    // associations can be defined here
    Job.hasMany(models.Contact, { foreignKey: "job_id" });
  };
  return Job;
};

联系

module.exports = (sequelize, DataTypes) => {
  const Contact = sequelize.define(
    "Contact",
    {
      organization_name: DataTypes.STRING,
      contact_person: DataTypes.STRING,
      email: DataTypes.STRING,
      phone: DataTypes.STRING,
      // Group can only be either client,contact or contractor
      group: DataTypes.STRING,
      sub_group: DataTypes.STRING,
      instruction: DataTypes.STRING
    },
    {}
  );

  return Contact;
};

在我的应用程序中,联系人是单独创建的,用户仅在创建作业时选择联系人。因此,我应该怎么做才能将已创建的联系人与工作相关联?我已经阅读了文档,但看不到清晰的图片。我应该做类似newJob.setContacts的事情吗?我是否需要传递整个联系人对象或仅传递联系人ID(newJob.setContacts(['1','2'])?

1 个答案:

答案 0 :(得分:0)

好吧,您的联系模型实际上甚至没有用于hasMany ... job_id ...的外键列,这实际上是您要使用的多对多关系吗?一个工作可以有多个联系人,并且一个联系人属于多个工作吗?