序列化js如何正确实现递归外键约束

时间:2018-10-03 08:25:26

标签: sequelize.js

我的用例就是这样。

  1. 我有一个名为 employee (雇员)的表,employee(emp_id,name,supervisor)
  2. 员工可能有主管。 (不是必须要有主管)
  3. 主管也是雇员表中的雇员。这意味着supervisor列是一个外键,它引用同一张表的 emp_id

第一,我编写了一个迁移程序,以将supervisor列添加到employee表中。

return queryInterface.addColumn('employee', 'supervisor', {
      type: Sequelize.INTEGER,
      references: {
        model: 'employee',
        key: 'emp_id'
      }
    });

之后,我在employee.js model中声明了恋爱关系。

employee.associate = function (models) {
    employee.belongsTo(models.employee, {
      foreignKey: 'emp_id'
    })
  };

之后,当我尝试向各自的主管查询员工时,会做所有这些事情。

await employee.findAll({
  attributes:['name']
	include:[{model:db.employee}]
})

但是问题并不涉及主管,而是涉及相同员工的详细信息。 例如:-如果上面的查询中雇员姓名为 KAMAL ,而其主管的姓名为' NIMAL ',则我得到 KAMAL 的主管 KAMAL

希望我的问题对所有人都清楚。

如何使用sequlize.js实现此目标?

任何帮助!

非常感谢! =)

0 个答案:

没有答案