3

我对 CakePHP 如何处理它的数据库关系有点困惑。

对于 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”?

我不确定我是否正确理解了这一点。

4

1 回答 1

2

在文档的示例中,当它说用户拥有一个配置文件时,这意味着用户只能拥有一个配置文件。

因此是一对一的关系。你可以选择你喜欢在哪里拥有外键,他们更喜欢在profile桌子上使用它。

你的图像是错误的。在您的情况下,这将是一对多。这是一个hasMany+ belongsTo。他们刚刚决定每个用户只有一个配置文件,如果您希望每个用户有多个配置文件,那么它不会是hasOne. 那是你的决定。

于 2013-07-25T15:26:47.873 回答