【问题标题】:I'm confused about the assosiation in Sequelize我对 Sequelize 中的关联感到困惑
【发布时间】:2017-05-18 18:17:51
【问题描述】:

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

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

那么它们有什么区别呢?我发现使用参考文献更简单。如果您能给我一些建议,我将不胜感激。

【问题讨论】:

    标签: mysql node.js database sequelize.js


    【解决方案1】:

    你在做什么 - 添加 references 键 - 只是意味着在数据库级别设置了一个外键。使用hasOnebelongsTohasMany 等,将完成您在上面所做的工作,但此外,它还会为您的模型实例添加相关的便捷方法以获取关联的记录。

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

    【讨论】:

    • 谢谢。现在更清楚了。也许我应该多尝试一下。
    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 2016-09-04
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多