我有一个实体,希望作为其他实体(暂时未知)的基类,并且需要在基类实体中存储关系:
/**
* @ORM\Entity
* @ORM\Table(name="CMS_content")
*/
class BaseContent {
/**
* @ORM\ManyToOne(targetEntity="BaseContent")
* @ORM\JoinColumn(name="parent", referencedColumnName="id", unique=false)
*/
protected $parent;
/**
* @ORM\ManyToOne(targetEntity="ContentType")
* @ORM\JoinColumn(name="content_type", referencedColumnName="id", unique=false)
*/
protected $contentType;
...
};
/**
* @ORM\Entity
* @ORM\Table(name="CMS_whateverSpecializedContent")
*/
class WhateverSpecializedContent extends BaseContent {};
我不能使用@ORM\InheritanceType("JOINED")
,因为我希望能够在不触及基类的情况下创建任意数量的子类。我还需要将基类放在单独的数据库表中,以便关系有意义。
我还有哪些选项来管理这种结构?