Доброго времени суток, уважаемые коллеги!
Есть необходимость реализовать отношения Polymorphic ManyToOne, но куда ни ткнусь в сети - это, оказывается, плохая практика и так не делается. А как тогда делается?
Суть:
Нужно хранить все попытки оплатить какой-либо вид товара (все являются разными сущностями в коде) через разные платежные шлюзы. В таблице попыток оплаты предполагается хранить идентификатор товара (уникальный ключ) и его класс (PHP), у каждого вида товара свое все - методы, поля, обслуживающие сервисы, а в коде получать через Polymorphic-отношение. Но, как оказалось, так "не делается", например, Doctrine специально такой вид отношений между сущностями не поддерживает.
А как тогда? Объединять все товары под одним общим видом, внутри которого... будет все равно polymorphic-отношение к другим видам товара? Упоминается при этом 3NF (третья нормальная форма базы данных), мол что при polymorphic-отношениях она невозможна.
Прошу помочь с решением вопроса, хотя бы тыканьем в подходящие ссылки.