Я буду использовать пример CourseMembership
из руководства CakePHP, чтобы проиллюстрировать свой вопрос. Итак, имеются следующие таблицы:
CREATE TABLE course (
id INT NOT NULL PRIMARY KEY,
course_name VARCHAR(255)
);
CREATE TABLE student (
id INT NOT NULL PRIMARY KEY,
student_name VARCHAR(255)
);
CREATE TABLE course_membership (
course_id INT NOT NULL REFERENCES(course.id),
student_id INT NOT NULL REFERENCES(student.id),
attended_lectures TINYINT NOT NULL DEFAULT 0,
PRIMARY KEY (course_id, student_id)
);
Мои модели выглядят так:
class Course extends AppModel {
public $hasMany = array('CourseMembership');
}
class Student extends AppModel {
public $hasMany = array('CourseMembership');
}
class CourseMembership extends AppModel {
public $belongsTo = array('Course', 'Student');
}
Как лучше всего добавить модель/таблицу CourseMembershipProperty
в эту настройку? Мне любопытны как схема, так и конфигурация отношений в классе модели.
Отношения должны быть:
CourseMembershipProperty
принадлежитCourseMembership
CourseMembership
имеет многоCourseMembershipProperty
.
Для простоты таблица модели CourseMembershipProperty
может иметь два поля VARCHAR
, name
и value
.