ruby-on-rails - Rails 模型可以有太多关联吗?

标签 ruby-on-rails associations

如果这个问题有点愚蠢,我们深表歉意,但如果应用程序有一个模型或多个关联模型,是否会有任何负面影响?例如,对于需要用户模型的复杂应用程序(例如社交网站),该模型可能有 15 个以上的关联(has_many :posts, has_many :messages, has_many :photos, has_many :friends 等等)。如果一个模型与其他模型密切相关,这会对应用程序的性能产生负面影响吗?如果是这样,减少问题的最佳方法是什么?

最佳答案

Rails 中模型之间的关联实际上只是在幕后操纵 id 值。这些都是非常高性能的操作,特别是如果您花时间建立外键关系(如果您的数据库支持的话)。除非您要求,否则 ActiveRecord 也不会加载任何内容,因此通常只有当您对这些关系进行操作时,它们才会被翻译为 SQL 服务器的 JOIN。

当创建示例中的帖子、消息、照片或好友时,ActiveRecord 会自动为您设置 user_id 列。这就是 has_many 关联中涉及的全部内容。

过早的优化是万恶之源。在您确定分析瓶颈之前不要担心它。

关于ruby-on-rails - Rails 模型可以有太多关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587016/

相关文章:

ruby-on-rails - 在 Rails 上的同一查询中获取实例的子项

ruby-on-rails - 为什么 submit_tag 生成名称为 ="commit"属性的 HTML?

javascript - 可排序的保存位置

node.js - 使用 hasOne 和 BelongsTo 对关联进行序列化

json - Sencha touch 2 加载存储和带有嵌套 JSON 的关联存储

forms - 单一表格中的多个模型记录

ruby-on-rails - 已安装的 Rails Gem 未加载

ruby-on-rails - Ruby: "gem install bundler"未安装 bundler

ruby-on-rails - Rails EXCEPT 查询(过滤出联合表中存在的记录)

ruby-on-rails - 关联的 Rails 未初始化常量