2011-05-19 53 views
0

我有三种不同的模型,说A,B和C.这些是不同的,不能真正合并成一个。他们有一个共同的元素,我做了一个单独的模型,D.在Cake中建立这种关系的最好/最简单/标准的方法是什么?在CakePHP中,我该如何设置“一对一(三者中的一种)”关系?

目前,每个模型A,B,C都有一个与模型D相关的ID“D_id”。尽管这会创造出一些奇怪的东西,比如D被看作是“父模型”,事实并非如此的型号AC。

+2

我会说hasOne将是访问D元素的最合适的关系。 belongsTo是使D成为“父模型”的类似关联,但似乎是合乎逻辑的选择。 – Justin 2011-05-19 17:17:12

+0

准确地说,我认为hasOne将是合乎逻辑的选择,问题是这将关键放置在D模型中,因此不能单独决定是否应该从模型A,B或C中选择ID为X的记录。有一种方法来创建模型+ ID的组合,以便模型D知道它从模型B中选择ID X例如? – 2011-05-19 17:46:25

+0

如果你给我们一个描述,甚至每个模型的名称,这将有所帮助。 – Dave 2011-05-20 13:18:52

回答

3

每个模型中,A,B和C应 “属于关联” D.

d应 “的hasMany” A,B,和C.

这将使它所以A,B,和C每个都有一个引用D行的“D_id”字段。

有关CakePHP关联的重要说明,请参阅check out this site

+0

即使它没有“逻辑”意义,这确实是设置它的正确方法。这将有助于了解模型所代表的数据。 – generalopinion 2011-05-20 16:28:50

+0

是的 - 协会的命名并不总是遵循你以为会是的。 – Dave 2011-05-20 18:07:24

相关问题