用第二个belongstomany表续写belongstomany-立即设置

oipij1gg  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(183)

我有下列表格

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)

我还尝试向capability对象添加files:c.files,但这并没有解决问题。
有人能帮我吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题