I have an entity which I want to use as a base class for other entities (unknown at this time) and I need to store relationships in the base entity:
/**
* @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 {};
I cannot use@ORM\InheritanceType("JOINED")
because I want to be able to create arbitrary number of subclasses later without touching the base class. I also need to have the base class in a separate database table so the relationship would make sense.
What other options do I have to manage these kind of structure?