Database 检索嵌套链接数据,Cakephp(2.1.0)

Database 检索嵌套链接数据,Cakephp(2.1.0),database,cakephp,cakephp-2.1,Database,Cakephp,Cakephp 2.1,我有以下关系: 建筑物有许多形状 公寓只有一个形状 大楼有许多公寓 建筑物和公寓的形状 现在,在形状模型中,我想检索属于某个建筑的所有形状。这包括属于该特定建筑的公寓的形状 例如 建筑“X” 有4个形状通过belongsTo building关系直接链接到建筑X。 Shape->Building 并且有两个形状通过belongsTo Appartment关系直接链接到两个公寓。这两套公寓同样通过与建筑物之间的关系与X号建筑物直接相连。因此,这两个形状间接链接到建筑X。 形状->公寓->建筑 我似

我有以下关系:

建筑物有许多形状

公寓只有一个形状

大楼有许多公寓

建筑物和公寓的形状

现在,在形状模型中,我想检索属于某个建筑的所有形状。这包括属于该特定建筑的公寓的形状

例如

建筑“X”

有4个形状通过belongsTo building关系直接链接到建筑X。
Shape->Building

并且有两个形状通过belongsTo Appartment关系直接链接到两个公寓。这两套公寓同样通过与建筑物之间的关系与X号建筑物直接相连。因此,这两个形状间接链接到建筑X。
形状->公寓->建筑


我似乎无法理解这一点,非常感谢您的帮助。

使用。

尝试在您的发现中提升您的形状。

您可能还需要重新考虑使用形状作为自己的表格

例如,如果您的表只有一个,并且看起来像这样:

shapes
id     int
shape  varchar 50
而是这样做:

buildings
id    int
bulding_number  int
shape varchar 50
...
appartments
id    int
appartment_number  int
shape varchar 50
...
在建筑物和公寓的桌子上都可以选择合适的形状。您的数据库将更简单、更快,并且可能更易于编程


但是,如果要捕获形状的其他属性,请继续。

您可以在
find
函数中使用
'threaded'
子句。
请参见此处的语法示例:


它会给出父子关系中所有依赖的数据

这不是一个好主意-提高递归会弊大于利。同意何时将其提高到较高水平。但是,当您将递归值提高到1时,它应该可以正常工作。但是,当定义了许多关系时,可包含的行为确实是这种情况下的最佳选择。谢谢,这似乎是我想要的。可能需要一些阅读/理解才能习惯,但是-它非常适合根据关联检索特定数据。我的形状表由id和坐标\u id组成,使用具有x和y坐标的坐标表。并且一个形状至少存在于3个x和3个y坐标(因此3个坐标_id)。