我在类(class)和用户之间创建了一个多对多的关联,如下所示:
Course.belongsToMany(User, { through: 'CourseUser'});
User.belongsToMany(Course, { through: 'CourseUser'});
它生成一个名为 CourseUser 的连接表。
我为特定类(class)和用户添加了一个关系,具有以下服务器端功能,点击按钮时发生: userCourse 变量如下所示:{ UserId: 7, CourseId: 13 }
addUser: function(req, res) {
var userCourse = req.body;
db.CourseUser.create(userCourse).then(function () {
res.sendStatus(200);
});
}
这是在现有用户和现有类(class)之间添加关联的正确方法吗? (如果不是,正确的做法是什么)
我希望能够在单击另一个按钮时删除关联。但我不太清楚如何设置该功能。
最佳答案
- 如果您已经有一个
User
和Course
实例并且只是在addUser
中关联它们,那么是的,这是正确的方法在它们之间建立关联。 - 您应该能够通过至少 4 种方式删除此关联:
1:通过User
模型:
User.removeCourse(courseObject);
2:通过类(class)
模型:
Course.removeUser(userObject);
3:在 CourseUser
模型上,没有可用的 CourseUser
实例:
db.CourseUser.destroy({
where: {...}
});
4: 有一个可用的 CourseUser
实例:
courseUser.destroy();
您可以在所有这些操作上绑定(bind) .then
和 .catch
以在成功/出错时执行某些操作。
关于javascript - 如何使用 sequelize/mysql 删除特定实例的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831639/