我为DB字段和关系写了一些同名的Yii代码:
public function relations()
{
return array(
'kin' => array(self::BELONGS_TO, 'Kin', 'kin'),
'child' => array(self::BELONGS_TO, 'Child', 'child'),
);
}
现在我明白这是错误的,因为关系“覆盖”字段属性和$this->child
之类的查询以获取子ID不起作用。
我的问题:您对DB字段和关系建议使用哪种命名方案?
答案 0 :(得分:3)
首先,我要避免在表后命名主键。这使得这种陈述难以阅读。我总是将我的主键命名为childId或kinId;这样很清楚你在说什么领域。
我认为除了在你的上下文中使用有意义的内容之外,没有关于命名的硬性规则。对于这样的事情,假设我已正确理解你的桌面结构,我倾向于这样做: 表1:亲属 主键:kinId
表2:孩子 主键:childId 来自表kin的外键:fkKinId
然后,假设一个亲属可以有很多孩子,那么你在Kin模型中的关系就会变成:
public function relations()
{
return array(
'children' => array(self::HAS_MANY, 'Child', 'fkKinId'),
);
}
如果您在Kin模型中,您可以使用$ this->孩子为您的亲属调用子模型。