2010-12-13 62 views
2

我建立了一个相当大的应用程序与Zend,我想知道这将是更好的,建筑用手工查询(使用Zend对象模型)手工制作的查询VS findDependentRowset

$db->select() 
    ->form('table') 
    ->join('table2', 
      'table.id = table2.table_id') 

或打算与findDependentRowset方法(Zend doc for findDependentRowSet)。

我想知道,因为我做了一个测试,以获取多个表的数据并显示表中的所有信息,并且findDependentRowset似乎运行速度较慢。我可能是错的,但我想这是一个新的查询,每次findDependentRowset在被称为:

$table1 = new Model_Table1; 
$rowset = $table1-fetchAll(); 
foreach($rowset as $row){ 
    $table2data = $row->findDependentRowset('Model_Table2', 'Map'); 

    echo $row['field'] . ' ' . $table2data['field']; 
} 

那么,哪一个更好,是有使用findDependentRowset建立复合查询,可以跨越5桌的方式这会像手工查询那样快速运行?

感谢

回答

2

一般情况下,建立自己的查询是最好的方式,因为Zend公司将只创建一个对象(或对象集),并做一查询。

如果使用findDependentRowset,Zend将执行另一个查询并为每个调用的结果构建另一个对象(或set)。

您应该只在非常特殊的情况下使用它。

看到这个问题:PHP - Query single value per iteration or fetch all at start and retrieve from array?

+0

感谢您解决问题:D – 2010-12-14 05:33:41