0

我为一个 DB 字段和一个关系写了一些同名的 Yii 代码:

public function relations()
{
    return array(
        'kin' => array(self::BELONGS_TO, 'Kin', 'kin'),
        'child' => array(self::BELONGS_TO, 'Child', 'child'),
    );
}

现在我明白这是错误的,因为关系“覆盖”了字段属性,并且像$this->child获取子 ID 这样的查询不起作用。

我的问题:您会为数据库字段和关系建议哪种命名方案?

4

1 回答 1

3

首先,我会避免在表格之后命名您的主键。这使得这种陈述难以阅读。我总是将我的主键命名为 childId 或 kinId;这样就很清楚你在说什么领域。

我认为命名没有硬性规定,除了使用在你的上下文中有意义的东西。对于这样的事情,假设我已经正确理解了您的表结构,我倾向于这样做:表 1:kin 主键:kinId

表 2:child 主键:childId 表 kin 的外键:fkKinId

然后,假设一个亲属可以有很多孩子,您在 Kin 模型中的关系变为:

public function relations()
{
    return array(
        'children' => array(self::HAS_MANY, 'Child', 'fkKinId'),
    );
}

然后,如果您在 Kin 模型中,则可以使用 $this->children 为您的 kin 调用子模型。

于 2013-05-18T15:56:36.200 回答