以下を関連付けるためにどの関係タイプを使用する必要があるかを把握しようとしています。
先生と生徒がいる教室があります。
生徒と教師が所属する教室。しかし、その逆はどうでしょうか。
Classroom モデルで次のものを使用できますか。
var $hasMany = array('Students');
var $hasOne = array('Teacher');
ありがとう。
以下を関連付けるためにどの関係タイプを使用する必要があるかを把握しようとしています。
先生と生徒がいる教室があります。
生徒と教師が所属する教室。しかし、その逆はどうでしょうか。
Classroom モデルで次のものを使用できますか。
var $hasMany = array('Students');
var $hasOne = array('Teacher');
ありがとう。
データを取得および/またはモデル化する方法によって異なります。
を 1 つしか持たない、またはClassrooms
1 つだけ持つと仮定すると、 のフィールドを作成することさえできます。Teacher
Teachers
Classroom
Classroom
Teacher
ただし、すべてを互いに抽象化したままにしておく必要があると仮定します。この場合、モデルは次のようになります。
// classroom.php
class Classroom extends AppModel {
var $hasMany = array( 'Student' );
var $hasAndBelongsToMany = array( 'Teacher' );
}
// teacher.php
class Teacher extends AppModel {
var $hasMany = array( 'Student' );
var $hasAndBelongsToMany = array( 'Classroom' );
}
// student.php
class Student extends AppModel {
var $belongsTo = array( 'Teacher', 'Classroom' );
}
それはあなたの状況に大きく依存しますが、私の古い学校では、追加する必要のない関係かもしれませんが、それは確かに正しいでしょう.
教師には多くの生徒がいる 教室には 1 人の教師がいる 教室には多くの生徒がいる
しかし、学生は動き回りますか?生徒と教室の関係は絶対に必要ですか? この場合の最も明確な関係は、教師と生徒の関係だと思います。それからおそらく教師教室。これらの関係に基づいて、一部の生徒が教室の一部であると推測できます。
したがって:
教室 - 教師 - < 生徒 教室 (1 つある) 教師 (多数ある) 生徒
次に、教師を介して教室の生徒を見つけます。