使用一对多关系 (PHP) 对对象进行建模


Modeling an Object with one-to-many relationships (PHP)

我试图强迫自己在建模对象时保持一致,但我只是不确定创建一个具有一对多关系的类的最佳方法是什么。

例如,假设我在一个名为 Projects & Notes 的数据库中有两个表。 一个注释只能属于一个项目,一个项目可以有多个注释。 以下方法是否是建模项目类的好(最佳)方法? 还是应该将注释设置为控制器中的单独变量,而不是项目的属性?

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模型中应该还有一个属性将引用项目模型。模型的标识符必须是整数类型

class Note extends BaseModel{
  $id //string
  $text//string
  $project_id //int
}

因此,当您添加项目时,例如,ID = 5,您可以添加project_id = 5的注释。这将是一对多的关系。