【发布时间】:2014-12-20 13:53:49
【问题描述】:
所以我昨晚正在努力解决这个问题,经过几次思考后,我决定我需要一些帮助。我确实发布了一个关于未填写 ID 字段的问题,但它变得冗长和混乱,我意识到问题可能是基于关联。
我正在处理客户数据库。对于较大的商业客户,关系变得有点复杂。我有 3 个模型,Customer、CustomerAddress 和 CustomerContact。一个客户可以有多个地址和多个联系人,但这些联系人也基于一个地址,因此一个地址有多个联系人。
我想要达到的最终结果是能够以两种方式搜索数据,例如
Customer -> Address 1 -> Contact 1, Contact 2, Contact 3, etc....
Address 2 -> Contact ... ... ...
....
或者....
Customer -> Contact 1 -> Address
Contact 2 -> Address
....
我遇到的问题是地址必须hasMany 联系人和联系人必须hasOne 地址,但这两种关系冲突,因为另一方应该belongsTo 而不是。
【问题讨论】:
-
至少:在Contact表中,存放Address表的主键。在 Address 表中,存储 Customer 表的主键。 hasOne 术语的 Cakephp 使用使分析复杂化。您的联系人belongsTo一个地址。仅供参考:hasOne 在数据库方案中不如 belongsTo 常见。
-
是的,我目前的工作方式与我发布的第一个示例一样。问题是如果不查找所有地址,我就无法搜索联系人。
-
关系不一定是互惠的。为什么不能使用 Address hasMany Contacts?
-
如果地址有很多联系人,那么联系人必须属于地址。在这种情况下,我不确定如何进行查找以返回第二个示例中的结果?
标签: database cakephp model associations