我在类(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)之间添加关联的正确方法吗? (如果没有,正确的方法是什么)
  • 我希望能够在单击另一个按钮时删除关联。但我不太清楚如何设置该功能。
  • 最佳答案

  • 如果您已经有 UserCourse 实例,并且只是在 addUser 中关联它们,那么是的,这是在它们之间创建关联的正确方法。
  • 您应该至少可以通过 4 种方式删除此关联:

  • 1:通过User模型:
    User.removeCourse(courseObject);
    

    2:通过Course模型:
    Course.removeUser(userObject);
    

    3:在 CourseUser 模型上,没有可用的 CourseUser 实例:
    db.CourseUser.destroy({
        where: {...}
    });
    

    4:有一个 CourseUser 实例可用:
    courseUser.destroy();
    

    您可以在所有这些操作上绑定(bind) .then.catch 以在成功/错误时执行某些操作。

    10-06 15:40