map*_*phe 12 php oop doctrine-orm
我正试图找到设计模型中实体之间关系的最佳方法.我会试着清楚地解释一下.
想象一下以下的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;
}
Run Code Online (Sandbox Code Playgroud)
我想建立两个一对多的双向学说关系,Cat
并且Dog
是关系的拥有方.两个Cat
和Dog
类都有这个实体配置:
manyToOne:
imageHistory:
targetEntity: ImageHistory
joinColumn:
name: image_history_id
referencedColumnName: id
Run Code Online (Sandbox Code Playgroud)
如何表示te关系的另一面?
oneToMany:
owner:
targetEntity: <What can I write here?>
mappedBy: imageHistory
Run Code Online (Sandbox Code Playgroud)
我想象一个解决方案,其中Cat
和Dog
继承一个Animal
实体类,所以我可以将ManyToOne关系移动到Animal
类中,并将其Animal
作为OneToMany关系的targetEntity.但是,如果我有一个新的问题再次出现SoundHistory
:实体Cat
,Dog
以及新的Car
和Boat
类都必须有一个相对于它.
A不能只是添加SoundHistory
的一对多关系到Animal
类,因为Car
并Boat
不会从中inherite.所以我仍然无法targetEntity
在ImageHistory
实体中填充我的OneToMany关系.
在这种情况下,设计实体模型的最佳方法是什么?