我对Sequelize

时间:2017-05-17 13:19:11

标签: mysql node.js database sequelize.js

我已经了解到,在Sequelize中,我们可以通过两种方式为子模型添加外键。一种是使用hasOnebelongsTohasMany等。另一种方法是在我们配置模型时将references添加到道具中:

trainer_id: {
    type: DataTypes.INTEGER,
    references: {
      model: "trainers",
      key: "id"
    }
  }

那么它们的区别是什么?我发现使用refrences更简单。如果你能给我一些建议,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在做的事情 - 添加references密钥 - 只是意味着在数据库级别设置了外键。使用hasOnebelongsTohasMany等将执行上述操作,但此外,它还会为模型实例添加相关的便捷方法以获取相关记录。

EG。如果您使用BlogPost belongsTo类别,那么您将能够调用blogPost.getCategory()并且sequelize会为您处理它。它会自动将getCategory方法添加到您的blogPost实例,因为您定义了belongsTo关系。据我所知,如果您没有声明hasOne / belongsTo / hasMany关联,并且只使用references,则不包括这些额外的便利方法。