在实现某些网站将使用的新数据对象时,我总是遇到同样的问题。在我看来,填补这个目标是天生的......
object: news
news subobjects: mediaItems, user, category
我通常实现关联对象(对象列表)的延迟加载,并且还有一个静态方法来立即填充新闻对象数据,媒体和类别(来自连接的sql查询,因为延迟加载会重新查询3个查询)。但有时,实际上很常见,我需要额外的参数,用于特定的视图或聚合,在新闻对象旁边。要获取此参数,我将使用新的SQL查询。与此同时,我知道我可以使用一个更复杂的查询来获取包含此参数的新闻对象。
我的问题基本上是:我是否将数据作为一行项目获取并在后一种情况下将其传递给视图,或者通过特殊加载和处理添加的参数来容纳新闻对象,仅在此视图中需要仅供展示。
答案 0 :(得分:0)
我想这取决于具体情况。有时它只是方便得到它与原始查询,有时它不值得 - 特别是如果数据是相当可缓存的。
我的应用程序使用了一种组合 - 我们连接每行生成多个对象,我们会做多个查询来拉回其他一些东西。一切都是通过memcache缓存的,所以只要它们都简单快捷,我们就不会总是担心太多的查询。
然后我们将行列表(如新闻帖子列表)传递给视图(实际上是db_table_rowset),对于其他查询,我们只传递各行(db_table_row objs)。当然还有其他的vars传递给视图。然后视图正确地使用行(模型)
的工作