gpt4 book ai didi

node.js - 删除实体上的多对多关系表有多清楚

转载 作者:行者123 更新时间:2023-12-03 22:38:52 26 4
gpt4 key购买 nike

删除实体之一时如何制作自动清除关系表?现在,当我删除任务或在关系表中输入 tasks_types_realations 仍然存在已删除实体 ID 的记录,例如我有任务 ID:1,输入 ID: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
}

类型型号:
module.exports = (sequelize, DataTypes) => {
const TaskType = sequelize.define(
'taskType',
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
unique: true
}
},
{
tableName: 'tasks_types'
}
)

TaskType.associate = models => {
TaskType.Task = TaskType.belongsToMany(models.Task, {
as: 'tasks',
foreignKey: 'typeId',
through: models.TasksTypes
})
}

return TaskType
}

最佳答案

在任务模型中添加:

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'
})

关于node.js - 删除实体上的多对多关系表有多清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53657498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com