【问题标题】:"Hierarchical" rowsets in Zend Framework?Zend 框架中的“分层”行集?
【发布时间】:2009-09-23 19:13:23
【问题描述】:

我有两张表 - 我们称它们为客户和订单。这是一种 1:n 的关系,每个订单由一位客户下达,一位客户可以有多个订单。

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

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

没有那种蛮力的方法,有更好的方法吗?

【问题讨论】:

    标签: database zend-framework model


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 嗯,谢谢。我真的希望能够构建某种分层的嵌套对象;看起来答案是根据多个查询自己构建它,然后传递它。谢谢!
      • 您也可以将这种对象存储在内存中,您只需序列化并创建一个控制器插件来对其进行序列化和反序列化,这样您就可以将其作为控制器的成员。
      猜你喜欢
      • 2012-02-06
      • 1970-01-01
      • 2011-05-17
      • 2011-03-03
      • 1970-01-01
      • 2012-08-18
      • 2011-12-18
      • 1970-01-01
      • 2011-04-17
      相关资源
      最近更新 更多