如果这个问题有点愚蠢,我们深表歉意,但如果应用程序有一个模型或多个关联模型,是否会有任何负面影响?例如,对于需要用户模型的复杂应用程序(例如社交网站),该模型可能有 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/