外键不协调保存在cakephp中

时间:2013-01-27 20:33:01

标签: cakephp database-design cakephp-2.0 cakephp-2.1

database design

当我用蛋糕烘焙创建phps时遇到这个问题在cakephp中。我有以下问题: 如果我在库中保留两个元素,其中一个ID为1,其他ID为2.然后我在房间中保存了一个项目,其中包含了library_id = 1 ,并且在 library_id = 2 的房间。我真的可以将房间元素与用户元素联系起来。这应该不起,因为它们具有相同的library_id。因此它不引用相同的库。我只需要用户可以与房间相关,如果他们引用相同的库。我尝试cakephp抛出错误,或者不允许关系,当用户和房间没有相同的library_id时,我该怎么办?< / strong>

结果表:

libraries         users               rooms                 users_rooms
id            id   library_id       id   library_id        user_id   room_id
1             1       1             1       2                1           1
2

1 个答案:

答案 0 :(得分:1)

  

我只需要用户可以与房间相关,如果他们引用相同的库。我怎么能这样做?

通常情况下,钻石形状的依赖关系,其中钻石的两个“边”必须从“底部”引导到相同的“根”,需要使用识别关系:

enter image description here

请注意library_id如何从“根”向下迁移,在钻石的两个“边”下移动,然后在users_rooms表的“底部”合并。这样,如果用户连接到房间,则它们都必须连接到同一个库。

不幸的是,我不熟悉CakePHP所以我不知道它是否支持这个。