我对CakePHP如何处理它的数据库关系感到有些困惑。
对于hasOne关系,根据documentation:
“用户hasOne个人资料”
User hasOne Profile
- > profiles.user_id
Array
(
[User] => Array
(
[id] => 121
[name] => Gwoo the Kungwoo
[created] => 2007-05-01 10:31:01
)
[Profile] => Array
(
[id] => 12
[user_id] => 121
[skill] => Baking Cakes
[created] => 2007-05-01 10:31:01
)
)
但这不是一对多关系吗?
例如(我用这些表来说明我的困惑):
在这种情况下,有2个配置文件属于同一个用户。这是不是意味着用户有很多个人资料?
如果“User hasOne Profile”是
,那会更有意义吗?
那么这将是“User hasOne Profile”,但是“Profile hasMany User”?
我不确定我是否正确理解这一点。
答案 0 :(得分:2)
在文档的示例中,当它表示用户具有一个配置文件时,意味着用户只能拥有一个配置文件。
因此是一对一的关系。您可以选择您希望拥有外键的位置,并且他们更愿意在profile
表中使用它。
你的图片错了。在你的情况下,它将是一对多。这是hasMany
+ belongsTo
。
他们只是决定每个用户只有一个配置文件,如果您希望每个用户拥有多个配置文件,那么它将不是hasOne
。那是你的决定。