Zend Framework中的“分层”行集?

时间:2009-09-23 19:13:23

标签: database zend-framework model

我有两张桌子 - 我们称之为客户和订单。这是一个1:n的关系,每个订单由一个客户放置,一个客户可以有多个订单。

Web应用程序是用Zend Framework编写的。我的目标是从数据库中查询客户,并获取他们最近的10个订单(例如),并将所有这些信息捆绑到一个可以在多个控制器/视图/帮助程序之间传递的对象中。我想在初始控制器中预先进行所有查询,然后创建一个可以从代码传递到代码的单个对象(或其他任何对象),而无需进一步查询。

我还想在最初的步骤中尽量减少查询。也就是说,我知道一种方法是查询所需的客户,通过它们进行枚举,并构造一个包含其值的自定义对象(或只是一个数组)。在该枚举期间,我将查询每个客户的订单并将该信息添加到每个客户对象。然后,我将传递客户对象的集合。

如果没有那种相当强力的方法,有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

您可以使用memcached和Zend_Cache实现某种缓存,这样您就可以拥有10个最近的订单,无论如何您插入一个新订单,只需删除该客户的缓存并重新填充它。

答案 1 :(得分:0)

也许您应该考虑使用ORM层,即。 PropelDoctrine。你也可以将它们与Zend Framework应用程序混合在一起(我现在正在使用Propel)。这些将返回您的PHP对象,因此您可以根据需要直接使用它们。