agu*_*ren 6 ruby-on-rails polymorphic-associations
我正在构建一个应用程序,允许评论5个独特的模型(帖子,照片,事件等),还有2或3个在路上.目前,每个模型都有一个相关的评论模型(PostComments,PhotoComments,EventComments等),尽管评论本身在所有模型中通常是相同的.
我最近发现了多态关联的强大功能,在Railscast#154中得到了很好的解释,它基本上将许多模型组合成一个模型,将许多表组合成一个表.
虽然多态关联会清理代码和冗余,但它们如何影响性能?我对数据库优化知之甚少,但似乎需要更长的时间来查询通用注释表中1,000,000行的注释,而不是特定注释表中的200,000行.是否值得切换到多态关联(虽然应用程序仍然处于开发阶段的早期阶段),还是应该继续为每种类型的评论制作模型/表格?
这实际上取决于该网站有多大。首先,您必须在两列上添加索引。
add_index :comments, [:commentable_type, commentable_id]
Run Code Online (Sandbox Code Playgroud)
这将大大提高速度。
如果您将来遇到很大的速度问题,因为您有 1.000.000 条评论,您始终可以使用缓存,甚至迁移到多个表。但实际上,您需要大量注释才会出现速度问题。只要你索引你的表!无论如何,在 1.000.000 条记录中进行搜索查询并不算多。
我说,做一张桌子!
| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |