Php 从Zend framework中的行集(而不是单行)检索依赖行集
我想知道我是否可以使用Zend框架高效地检索额外的依赖行,而不必求助于大量自定义代码。我将使用Bugs数据库的Zend示例来解释我的问题:Php 从Zend framework中的行集(而不是单行)检索依赖行集,php,sql,zend-framework,frameworks,Php,Sql,Zend Framework,Frameworks,我想知道我是否可以使用Zend框架高效地检索额外的依赖行,而不必求助于大量自定义代码。我将使用Bugs数据库的Zend示例来解释我的问题: $accountsTable = new Accounts(); $accountsRowset = $accountsTable->find(1234); $user1234 = $accountsRowset->current(); $bugsReportedByUser = $user1234->findDependen
$accountsTable = new Accounts();
$accountsRowset = $accountsTable->find(1234);
$user1234 = $accountsRowset->current();
$bugsReportedByUser = $user1234->findDependentRowset('Bugs');
然而,在我的例子中,Bugs表将有额外的依赖项,在本例中可能是BugReplication。如何检索这些复制品(有多对一的bug)。
在$bugsreportedbyser上对foreach进行编码,并获取额外的dependentRowset以获得复制,这似乎非常糟糕。这将导致“n”顺序查询,而每个请求总是需要固定数量的查询
这对于连接来说似乎微不足道,但我还没有在Zend ecosphere中找到一种合理的方法来做到这一点。我想了很久,但归根结底,这是因为缺少了行集方法->getDependentRowset。(不要误认为是行(单数)->getDependentRowset()) 因此,扩展Zend_Db_Table_Row_Abtract,并通过以下方式在示例的Bugs Table类中使用它:
class BugsTable extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_rowsetClass = 'MyRowset';
...
并在MyRowSet中实现findDependentRowset($dependentTable)。高级别的实施将是:
$id
(数组)bugsTable->find($id)
(可以使用Zend\u Db\u Table\u关系找到关系)我想了很久,但归根结底是缺少了行集方法->getDependentRowset。(不要误认为是行(单数)->getDependentRowset()) 因此,扩展Zend_Db_Table_Row_Abtract,并通过以下方式在示例的Bugs Table类中使用它:
class BugsTable extends Zend_Db_Table_Abstract
{
protected $_name = 'bugs';
protected $_rowsetClass = 'MyRowset';
...
并在MyRowSet中实现findDependentRowset($dependentTable)。高级别的实施将是:
$id
(数组)bugsTable->find($id)
(可以使用Zend\u Db\u Table\u关系找到关系)当然,这不如实联接有效,但是这样,复杂性顺序从
O(n)
变为O(x)
,其中n
=结果集的大小,x
=依赖关系的数量。(O(1)
=1个对服务器的查询)当然,这并不像真正的连接那样有效,但是通过这种方式,复杂性顺序已经从O(n)
变为O(x)
,其中n
=结果集的大小,x
=依赖关系的数量。(O(1)
=1对服务器的查询)