CakePHP:Model Associates

时间:2012-02-28 19:19:16

标签: cakephp

我想确保我在这里有适当的关联。下面我列出了我的模型,然后是所有关联:

  • 课程(包含教师的'student_id'字段,课堂的classroom_id和课程类型的'course_type_id')
  • CourseType
  • 教室
  • 学生
  • 学生课程(当学生报名参加课程时......包含'student_id'和'course_id')

以下是我的关联:

  • 课程:'belongsTo'CourseType; 'belongsTo'课堂; 'belongsTo'学生(讲师); 'hasAndBelongsToMany'学生课程
  • CourseType:'hasMany'课程
  • 课堂:'hasMany'课程
  • 学生:'hasMany'课程; 'hasAndBelongsToMany'学生课程

这看起来不错吗?

1 个答案:

答案 0 :(得分:0)

整体看起来很接近,但你没有通过HABTM将模型与连接表联系起来,你将它与其他模型联系起来,它默认使用连接表。

您的联接表不需要模型,除非您正在执行hasMany Through,它不会出现。连接表应为courses_students(按字母顺序排列)

关系(据我所知,你的描述)应该是这样的:

//Course
$belongsTo = array('Classroom', 'Student', 'CourseType');
$hasAndBelongsToMany = array('Student');

//Student
$hasAndBelongsToMany = array('Course');
$hasMany = array('Course');

//Classroom
$hasMany = array('Course');

//CourseType
$hasMany = array('Course');

要考虑的一些事情:

  • 如果课程在多个教室中怎么办?
  • 是否有学生以外的其他人可以教授该课程?
  • 课程可以是多种类型吗?
  • 课程可以由不止一个学生教授吗?