Вы ищете наследование сущностей
Перепишите свой код примерно так
/** @MappedSuperclass */
class Base
{
...
}
На самом деле, это часть Doctrine, вот что официально Документация гласит
Преобразованный суперкласс - это абстрактный или конкретный класс, который предоставляет постоянное состояние объекта и информацию отображения для его подклассов, но сам по себе не является объектом. Как правило, целью такого сопоставленного суперкласса является определение информации о состоянии и отображении, которая является общей для нескольких классов сущностей.
BLOCKQUOTE>
В общем, преимущества те же, что и для любого другого типа данных, и почему у вас вообще есть типы данных, кроме текстовых:
Одним из примеров является функция xpath ()
( XML Path Language ), которая работает только со значениями типа xml, а не с текстом.
Характеристики индексации и производительности запросов не лучше и не хуже, чем, скажем, тип текста на данный момент.
Сейчас самое большое, что вы можете получить от полей XML по сравнению с необработанным текстом, это XPath. Поэтому, если у вас было что-то похожее на
CREATE TABLE pages (id int, html xml);
, вы могли бы получить заголовок страницы 4 к
SELECT xpath('/html/head/title/text()', html) FROM pages WHERE id = 4;
. Сейчас поддержка XML довольно ограничена, но стала намного лучше в 8.3, текущие документы находятся по тексту ссылки