当实体之一被删除时,如何制作自动清除关系表?现在,当我删除任务或在关系表tasks_types_realations
中输入类型时,仍然存在具有已删除实体ID的记录,例如,我有ID为1的任务,并且ID为1的类型,在关系表中它将{{1} },并且在删除任务或类型记录之后仍然存在。
任务模型:
|taskId:1|typeId:1|
类型模型:
module.exports = (sequelize, DataTypes) => {
const Task = sequelize.define('task', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
status: {
type: DataTypes.ENUM,
values: ['done', 'pending', 'cancel'],
defaultValue: 'pending',
allowNull: false
},
date: {
type: DataTypes.DATE,
allowNull: false
},
})
Task.associate = models => {
Task.TaskType = Task.belongsToMany(models.TaskType, {
as: 'types',
through: models.TasksTypes
})
}
return Task
}
答案 0 :(得分:0)
在任务模型中添加:
Task.TasksTypes = Task.hasMany(models.TasksTypes, {
as: 'typesRelations',
foreignKey: 'taskId',
hooks: true,
onDelete: 'cascade'
})
在类型模型中添加:
TaskType.TasksTypes = TaskType.hasMany(models.TasksTypes, {
as: 'tasksRelations',
foreignKey: 'typeId',
hooks: true,
onDelete: 'cascade'
})