我試圖找出其中的關係類型,我應該使用涉及以下內容:CakePHP的模型關聯
我們必須具有教師和學生的課堂。
學生和老師都屬於教室。但是反過來呢?
我可以在課堂模式如下:
var $hasMany = array('Students');
var $hasOne = array('Teacher');
感謝。
我試圖找出其中的關係類型,我應該使用涉及以下內容:CakePHP的模型關聯
我們必須具有教師和學生的課堂。
學生和老師都屬於教室。但是反過來呢?
我可以在課堂模式如下:
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');
}
你能解釋一下老師模型中的$ hasAndBelongsTo嗎?一個$ belongsTo會有什麼區別?謝謝! – AlexBrand
當你考慮這些關係時,請記住它們存在以允許輕鬆加入模型。$ hasAndBelongsToMany允許的用於*交叉連接*並以更復雜的方式加入。假設你的博客中有用戶發佈信息,用戶在評論中回覆。用戶可以成爲帖子的一部分,成爲評論的一部分(如果您說有用戶名標籤),「擁有」帖子和「自己」的評論。一個簡單的$ hasMany或$ belongsTo關係不能很好地處理這些關係的雙向性質。我建議您閱讀以下內容:http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM – dclowd9901
它非常依賴於你的情況,但在我的老學校,這確實是正確的,雖然也許是不必要的關係增加。
教師有很多學生 教室有一個老師 課堂有很多學生
然而,做學生走動?學生和課堂之間的關係是否完全必要?我認爲在這種情況下最重要的關係是師生關係。然後也許是老師教室。你可以根據這些關係,一些學生是教室的一部分來猜測。
因此:
課堂 - 教師 - 學生<課堂 (有一個)教師(有很多)學生
然後,您可以通過老師發現教室的學生。
它取決於您希望在這些模型上具有哪些操作約束。在現實生活中,一個學生可以有很多老師;但是如果一個學生在你的應用中只能有一位老師,那麼hasOne就是正確的關係。 –
好吧,對我來說,教室更像是一種行政事務,我可以在教室裏看到學生和老師。一個教室可以有多個學生和一個教師。一名學生只能屬於一個教室。老師負責教室,並且應該有能力列出課堂上的學生。 – AlexBrand