我有一个设置,其中关系是三个因素:
构件 组 作用
因此,成员可能是多个组的一部分(并且组包含多个成员),但根据该组合,角色也会有所不同。
工作中的数据库人告诉我要设置这样的表:
member
id name
group
id name
role
id name
member_group_role
id member_id group_id role_id
如何让它与cakephp一起使用?我已成功为两个链接表设置HABTM,但不是三个。
谢谢!
答案 0 :(得分:0)
根据您的结构我认为每张桌子有4个模型。
前3个模型将与第4个模型相关联hasMany
,第4个模型将与这些模型相关联,如BelongsTo
1)会员
class MemberTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('MemberHasGroupHasRole')
->setForeignKey('member_id');
}
}
2)小组
class GroupTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('MemberHasGroupHasRole')
->setForeignKey('group_id');
}
}
3)角色
class RoleTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('MemberHasGroupHasRole')
->setForeignKey('role_id');
}
}
4)MemberHasGroupHasRole
class MemberHasGroupHasRoleTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Member')
->setForeignKey('member_id')
->setJoinType('INNER');
$this->belongsTo('Group')
->setForeignKey('group_id')
->setJoinType('INNER');
$this->belongsTo('Role')
->setForeignKey('role_id')
->setJoinType('INNER');
}
}