sequelize.js - Sequelize 如何使用 hasMany 关联保存模型?

标签 sequelize.js

我有两个模型 Job 和 Contact。一个 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'] )?

最佳答案

首先,您的联系模型实际上甚至没有您用于 hasMany... job_id... 的外键列...这实际上是您要使用的多对多关系吗?一个职位可以有多个联系人,一个联系人可以属于多个职位吗???

关于sequelize.js - Sequelize 如何使用 hasMany 关联保存模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56586186/

相关文章:

javascript - 获取所有不在组内的用户

node.js - 从模型定义更新迁移文件的 NodeJS ORM 框架

javascript - 为什么 Sequelize beforeUpdate 钩子(Hook)不起作用?

node.js - NodeJS Sequelize ORM db :seed:all drops tables from db

mySQL/Sequelize - 如何查询以获取字段为空数组的数据

express - 在 sequelize instanceMethods 中访问属性

postgresql - 我应该如何从外部服务器连接到 Heroku Postgres 数据库?

javascript - #Sequelize findAll events 和 forEach event getUser

node.js - GraphiQL 返回零突变

node.js - Sequelize - 外键关系 - 别名问题