Rails模型可以有太多关联吗?

Bud*_*gie 2 ruby-on-rails associations

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

Ada*_*sek 5

Rails中的Models之间的关联实际上只是在幕后操纵id值.这些是非常高性能的操作,特别是如果您的数据库支持它,您花时间设置外键关系.除非您要求,否则ActiveRecord也不会加载任何内容,因此通常只有在您处理这些关系时,它们才会被转换为SQL服务器的JOIN.

当您创建示例中的帖子,消息,照片或朋友时,ActiveRecord将user_id自动为您设置列.这就是has_many协会所涉及的一切.

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