0

数据库关系

你好

我在上面创建了数据库关系,如您所见,一个人(员工)可以是多个组的成员。每个小组都有一个小组长。我如何正确管理这种关系?

我会感谢每一个提示

这是我之前尝试过的:

员工模型:

    /**
 * belongsTo associations
 *
 * @var array
 */
    public $belongsTo = array(
        'Staffgroup' => array(
            'className' => 'Staffgroup',
            'foreignKey' => 'Staffgroup_groupLeader',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );

/**
 * hasAndBelongsToMany associations
 *
 * @var array
 */
    public $hasAndBelongsToMany = array(
        'Staffgroup' => array(
            'className' => 'Staffgroup',
            'joinTable' => 'staff_staffgroups',
            'foreignKey' => 'staff_id',
            'associationForeignKey' => 'staffgroup_id',
            'unique' => 'keepExisting',
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )
    );

}

模范员工组

/**
 * hasOne associations
 *
 * @var array
 */
    public $belongsTo = array(
        'Staff' => array(
            'className' => 'Staff',
            'foreignKey' => 'groupLeader',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );

/**
 * hasAndBelongsToMany associations
 *
 * @var array
 */
    public $hasAndBelongsToMany = array(
        'Staff' => array(
            'className' => 'Staff',
            'joinTable' => 'staff_staffgroups',
            'foreignKey' => 'staffgroup_id',
            'associationForeignKey' => 'staff_id',
            'unique' => 'keepExisting',
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'deleteQuery' => '',
            'insertQuery' => ''
        )
    );
4

2 回答 2

0

hasMany您的模型中缺少一个关联来表示和Staff之间的“组长”关系。StaffStaffGroup

于 2012-07-12T15:29:58.547 回答
0

我认为你与belongsTo 有不必要的关系。使用 HABTM 应该足以处理“一个人可以是多个群体的一部分”的关系

有关更多信息,您可以查看食谱

于 2012-07-12T15:10:02.310 回答