0

データベース関係

こんにちは

上記のデータベースリレーションを作成しました。ご覧のとおり、1人の人(スタッフ)が多くのグループのメンバーになることができます。すべてのグループにはグループリーダーがいます。その関係を正しく管理するにはどうすればよいですか?

私はすべてのヒントに感謝します

これが私が以前に試したことです:

スタッフモデル:

    /**
 * 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

あなたはbelongsToと不必要な関係を持っていると思います。HABTMを使用すると、「人は多くのグループに参加できる」という関係を処理するのに十分なはずです。

詳細については、クックブックを確認してください

于 2012-07-12T15:10:02.310 に答える
0

との間の「グループリーダー」関係を表すために、モデルに関連付けhasManyがありません。StaffStaffStaffGroup

于 2012-07-12T15:29:58.547 に答える