cakephp查询与许多表
作者:互联网
我有一个在cakephp 2.0中开发的网站,我在这里有一些关联的表是一个例子:
这是我的关系:
ingredients (id,name) has many versions
ingredient_properties(id,property_id,version_id) belongs
to properties, versionsproperties (id,name,value,group_id,unit_id) has many
ingredient_properties and belongs to groups,unitsgroups (id,name) has many properties
units (id,name) has many properties
versions (id,name,ingredient_id,active) has many ingredient_properties and belongs to ingredients.
我在ingredientController.php中,我想要检索Version.active = 1和Version.ingredient_id = 2的所有数据.
这是我的查询:
$this->set(
'ingredient',
$this->Ingredient->Version->find('all', array(
'recursive' => 2,
'conditions' => array(
'Version.active' => 1,
'Version.ingredient_id' => 2
)
))
);
我有很多这样的查询,我想知道递归2是否是检索我所解释的表的所有数据的最佳方法,或者有更快的方法(在查询速度方面没有实现) .
我希望有人可以帮助我优化我的代码,因为这个查询有效,但我不知道这是否是检索许多表关系数据的更好方法.
谢谢.
解决方法:
这不是使用’recursive’=>的最佳方式. 2如果要检索如此多的数据.我相信它会产生太多查询.可容忍的行为具有相同的缺点.对我来说最好的方法是在unbind models associations和construct table joins飞行.您可以查看示例here.但是您需要了解一些SQL以了解您的操作.
标签:php,cakephp,cakephp-appmodel 来源: https://codeday.me/bug/20190709/1413655.html