Полиморфные отношения в Doctrine2

Как создать традиционные полиморфные отношения в Doctrine 2?

Я прочитал много ответов, в которых предлагается использовать наследование одной таблицы, но я не вижу, как это поможет в моей ситуации. Вот что я пытаюсь сделать:

У меня есть несколько служебных сущностей, таких как Address, Email и PhoneNumber.

У меня есть некоторые "контактные" сущности, такие как Клиент, Работодатель, Бизнес. Каждая из них должна содержать отношение OneToMany с вышеуказанными полезными сущностями.

В идеале, я хотел бы создать абстрактный базовый класс под названием 'ContactableEntity', который содержит эти отношения, но я знаю, что нельзя поместить отношения OneToMany в сопоставленные суперклассы с доктриной - это нормально.

Однако я все еще в растерянности, как я могу связать их без огромной избыточности в коде. Сделать ли мне Address типом STI, с подклассом 'CustomerAddress', который содержит связь непосредственно с Customer? Нет ли способа уменьшить количество повторений?

8
задан Tyler Sommer 23 October 2011 в 22:18
поделиться