我正在尝试了解使用活动记录为rails应用程序建模数据的最佳方法。
堆栈
Rails 4.1.0.beta1& Ruby 2.0& Postgres
这是我的情景。我有3个“内容类型”的文章,视频和图形。我的目标是能够向Active Record询问我发布的所有内容以及数据库中最新的内容。比如给我最后10个内容项,无论什么'类型'以有效的方式显示。
以下是我最初的想法:
内容 - has_many:文章,视频,图形
published_date:日期时间
文章 - belongs_to:内容
视频 - belongs_to:内容
图形 - belongs_to:内容
我猜它是这样的,但我不确定这是否是最有效的方法。所有文章,视频和图形都将从内容模型继承属性。但每篇文章,视频和图形都有自己的属性。
如果引入新的内容类型,组织此数据以提高速度和增长的最佳方法是什么?谢谢你提前。
答案 0 :(得分:0)
首先遵循您在“这是我最初的想法”中列出的模型关系:
如果您要在路上添加新的内容类型,我相信它应该像在模型标题中添加正确的has_many和belongs_to标记一样简单。您的内容模型可以包含您想要的尽可能多的has_many,也可以包含您想要的内容类型。
要检索最新的10个内容项,您可以在三个内容类型表上进行连接,这三个内容类型表匹配每个表中的10个最新项目的内容ID,然后按相反的时间顺序对其进行排序并获取前10个项目。