设计实体模型以管理多个双向关系
我试图从我的模型中找到设计实体之间关系的最佳方法。我会试着清楚地解释它。
想象一下以下教义2实体:
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
如何表示另一边的关系?
oneToMany:
owner:
targetEntity: <What can I write here?>
mappedBy: imageHistory
我想象一个解决方案,其中 并继承一个实体类,因此我可以将 ManyToOne 关系移动到该类中,并将 OneToOne 关系的目标实体放入该类中。但是,如果我有一个新的实体和 :,那么问题就会再次出现,而新的 和类必须与它有关系。Cat
Dog
Animal
Animal
Animal
SoundHistory
Cat
Dog
Car
Boat
不能只是将 a 添加为一对多关系到类,因为 并且不会从它继承。所以我仍然无法在实体中填充我的OneToMany关系。SoundHistory
Animal
Car
Boat
targetEntity
ImageHistory
在这种情况下,设计实体模型的最佳方法是什么?