我有一个实体,我想将其用作其他实体的基类(目前未知),我需要将关系存储在基实体中:
/**
* @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")
,因为我希望以后能够在不触及基类的情况下创建任意数量的子类。我还需要将基类放在一个单独的数据库表中,这样这种关系才有意义。
我还有哪些其他选择来管理这种结构?