Я думаю, что вы действительно должны немного изменить свою схему. Студенты и преподаватели являются пользователями. Поэтому создайте модель пользователя с идентификатором, именем, паролем электронной почты и т. Д. Я предлагаю добавить дополнительную модель под названием Участник или Участник курса. Итак, курс имеет много участников. Ваша модель участника имеет course_id, user_id, «as» или «роль» (студент, преподаватель и т. Д.).
Пользуясь курсом, вы можете сделать много участников:
array(
'Student' => array(
'className' => 'Participant',
'conditions' => array('Student.as' => 'student')
)
);
... то же самое для инструктора. Смотрите условия и использование поля «как»? Я не рекомендую habtm для этого (я никогда не рекомендую торт habtm ... и я думаю, что вы на правильном пути с StudentCource).
Пусть истории руководят вашей схемой. Пользователи могут быть студентами и инструкторами. Курсы имеют пользователей, которые участвуют в качестве студентов или преподавателей. Однажды у вас могут появиться пользователи, которые участвуют в курсе в качестве ассистента.
Теперь у вас есть много разных интересных данных. Курсы, которые преподавал этот инструктор. Курсы, которые этот студент прошел.
* редактировать: я должен добавить, что соглашение о торте предполагает, что ваш класс участника будет называться CourseUser.