用第二个belongsToMany表对belongsToMany进行排序-一次设置

时间:2018-08-06 14:39:33

标签: javascript mysql sequelize.js has-and-belongs-to-many

我有下表

const Employee = db.define('employee', {
  ...
})

const CapabilityType = db.define('capabilityType', {
  ...
})

const Capability = db.define('capability', {
  id: {type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, unique: true},
  since: {type: Sequelize.DATEONLY, allowNull: true},
  comment: {type: Sequelize.STRING, allowNull: true}
})

const UploadFile = db.define('file', {
  ...
})

Employee.belongsToMany(CapabilityType, {through: Capability})
Capability.belongsToMany(UploadFile, {through: 'capabilityFiles'})

因此,这意味着员工可以具有许多功能类型。这是通过功能表完成的。但是一种功能可以关联多个文件。因此,通过添加额外的“ capabilityFiles”表,它又具有另一个属具。

我达到了使用以下附加数据添加功能的功能:

const caps = capabilities.map(c => {
  const ct = CapabilityType.build({id: c.capabilityTypeId}, {isNewRecord: false})
  ct.capability = {since: c.since, comment: c.comment}
  return ct
})
Employee.build({id: employeeId}, {isNewRecord: false}).setCapabilityTypes(caps)

我还尝试将文件:c.files添加到功能对象,但这并不能解决问题。

有人可以帮我吗?

0 个答案:

没有答案