我正在尝试从我的模型中找到设计实体之间关系的最佳方法。我会尽力解释清楚。
想象一下以下 Doctrine2 实体:
class ImageHistory
{
/**
* @var Image
*/
protected $current;
/**
* @var \Doctrine\Common\Collections\Collection
*/
protected $old;
}
class Dog
{
protected $name;
/**
* @var ImageHistory
*/
protected $imageHistory;
}
class Cat
{
protected $name;
/**
* @var ImageHistory
*/
protected $imageHistory;
}
我想建立两个一对多的双向学说关系,Cat
并且Dog
是关系的拥有方。Cat
和类都有Dog
这个实体配置:
manyToOne:
imageHistory:
targetEntity: ImageHistory
joinColumn:
name: image_history_id
referencedColumnName: id
如何表示 te 关系的另一方?
oneToMany:
owner:
targetEntity: <What can I write here?>
mappedBy: imageHistory
我想象一个解决方案,其中Cat
继承Dog
一个Animal
实体类,因此我可以将 ManyToOne 关系移动到Animal
类中并Animal
作为 OneToMany 关系的 targetEntity。但是,如果我有一个新SoundHistory
实体和 : Cat
,Dog
并且新的Car
和Boat
类必须与它有关系,问题就会再次出现。
A 不能只添加SoundHistory
作为Animal
类的 oneToMany 关系,因为Car
并且Boat
不会从它继承。所以我仍然无法在实体中填充targetEntity
我的 OneToMany 关系。ImageHistory
在这种情况下设计实体模型的最佳方法是什么?