1

我试图弄清楚我应该使用哪种关系类型来关联以下内容:

我们有一个有老师和学生的教室。

学生和老师都属于教室。但是反过来呢?

我可以在课堂模型中使用以下内容:

var $hasMany = array('Students');

var $hasOne = array('Teacher');

谢谢。

4

2 回答 2

1

取决于您要如何检索和/或建模数据。

假设你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' );
}
于 2011-07-29T21:55:22.967 回答
0

它非常依赖于您的情况,但在我的老学校,这确实是正确的,尽管可能需要添加不必要的关系。

老师有很多学生 教室有一位老师 教室有很多学生

但是,学生会四处走动吗?学生和课堂之间的关系是完全必要的吗?我认为在这种情况下最明确的关系是师生关系。然后也许是教师教室。您可以根据这些关系推测某些学生是课堂的一部分。

所以:

教室 - 老师 -< 学​​生 教室(有一个) 老师(有很多) 学生

然后,您将通过教师找到教室的学生。

于 2011-07-29T21:52:25.740 回答