0

私は履歴書アプリを開発していareasて、CakePHPツリーの動作を使用してというテーブルを作成しました。この表には、たくさんの国と都市があります。

この表の本来の目的は、ユーザーが履歴書で作業することに関心のある領域を指定できるようにすることでした。これは非常に簡単で、これに対処するためにとusersの間でHABTM関係を作成しました。areas

ただし、次に行う必要があるのは、ユーザーがどこから来たのかを指定できるようにすることです。もちろん、同じテーブルを作成して別のテーブルareasと呼ぶこともできますが、これは少し無駄で非効率的なようです。

それで、私はusersテーブルとテーブルの間に2つのまったく異なる関連付けを持つことが実際に可能かどうか疑問に思っていareasますか?

言い換えると、usersテーブルにはareas(ユーザーが世界での作業に関心のあるすべての領域を指定するために)多数ありますが、1つarea(ユーザーの目的のため)もあります。出身国を指定する)。

CakePHPの慣習に従ってモデルを適切に設定する方法、またはこれを試すのが良い考えであるかどうかを想像することはできません。そのため、誰でも教えていただければ幸いです。

答えがCakePHP固有でなくても、これは他の何よりもデータベースの質問であるため、人々の意見を聞いてうれしいです。

4

1 に答える 1

0

任意の関連付けを指定できます。

たとえば、ユーザーモデルで:

/**
 * @see Model::$hasAndBelongsToMany
 */
    public $hasAndBelongsToMany = array(
        'Area' => array(
            'className' => 'Area',
            'joinTable' => 'user_areas',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'area_id',
        ),
    );

/**
 * @see Model::$hasOne
 */
    public $belongsTo = array(
        'Farea' => array(
            'className' => 'Area',
            'foreignKey' => 'farea_id',
        ),
    );
于 2013-01-14T08:56:48.283 に答える