关联:多个hasMany和belongsTo实现

时间:2019-06-09 19:51:09

标签: node.js express

所以我有三个模型:

评论用户。我希望这样的关联:

用户有很多评论

有很多评论

这样做:

Book.hasMany(Review);
Review.belongsTo(Book);

User.hasMany(Review);
Review.belongsTo(User);

不起作用,它给出此错误: 在模型审查中属性“用户”和关联“用户”之间的命名冲突。要解决此问题,请更改foreignKey或更改关联定义中的值

我该怎么办?或者在哪里可以读到?进一步谢谢你!

2 个答案:

答案 0 :(得分:1)

首先,您应该有一个模型实例,然后使用类似下面的代码:

  Review.associate = (models) => {
    models.Review.belongsTo(models.Book, {
      foreignKey: 'bookId',
      targetKey: 'id'
    })
  }


您可以添加与该代码类似的内容

答案 1 :(得分:1)

您只需在模型查看中为用户的外键指定别名,如下所示:

Review.belongsTo(User, {foreignKey: 'owner_user_id'}); 

在关联的sequelize文档页面中都提到了这些: http://docs.sequelizejs.com/manual/associations.html