[英]Cakephp model association
我試圖弄清楚應該使用哪種關系類型來關聯以下內容:
我們有一間有老師和學生的教室。
學生和老師屬於教室。 但是反過來呢?
我可以在“課堂”模型中使用以下內容:
var $hasMany = array('Students');
var $hasOne = array('Teacher');
謝謝。
取決於您要如何檢索和/或建模數據。
假設您的Classrooms
只有一個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' );
}
這非常取決於您的情況,但在我的舊學校里,這確實是正確的,盡管可能不需要添加不必要的關系。
老師有很多學生教室只有一位老師教室有很多學生
但是,學生會四處走動嗎? 學生與教室之間的關系是否完全必要? 我認為在這種情況下最確定的關系是師生關系。 然后是老師教室。 您可以根據某些學生是教室一部分的關系來推測。
因此:
教室-老師-<學生教室(有一個)老師(有很多)學生
然后,您將通過“老師”找到教室的學生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.