Я пытаюсь заставить себя быть последовательным при моделировании объектов, но я просто не уверен, что лучший способ — создать класс, имеющий отношения один ко многим.
Например, допустим, у меня есть две таблицы в базе данных под названием Проекты & Заметки. Заметка может принадлежать только одному проекту, а проект может иметь много заметок. Будет ли следующий (лучший) способ смоделировать мой класс проекта? Или примечания должны быть просто установлены в отдельной переменной в контроллере и никогда не быть свойством проекта?
class Project extends BaseModel{
$id //string
$description //string
$notes //array of note objects
}
class Note extends BaseModel{
$id //string
$text//string
}
//In a Controller Class
$project = new Project();
$noteArray = new Note();
//Set the note property of project equal to an array of note objects
$project->setNotes($noteArray->findNotes($project->id));
Я думаю, что в модели Note должно быть еще одно свойство, которое будет ссылаться на модель Project. Идентификаторы модели ДОЛЖНЫ быть целочисленным типом
class Note extends BaseModel{
$id //string
$text//string
$project_id //int
}
Поэтому, когда вы добавляете проект, скажем, с ID = 5, вы можете добавить Notes с project_id = 5. И это будет отношение один ко многим.
Других решений пока нет …