Много-к-одному с несколькими целевыми объектами
Это кажется простым, но я не могу понять это правильно:
Есть три объекта:Fruit
, Vegetable
а такжеSnack
, Закуска имеет поляid
, time
а такжеfood
, Еда является ссылкой наили один фруктили же один овощ Таким образом, это в основном отношения «многие к одному / ко многим», поскольку одна закуска всегда будет содержать только одну еду. Но есть больше чем одна целевая сущность.
Как бы я отобразил это в Doctrine2?
Простое решение, которое я использовал бы прежде, чем знать Doctrine2, состояло бы в том, чтобы использовать два поля:food_type
а такжеfood_id
, Но как я могу установить связь между типом пищи и правильным объектом? Я думал о массиве JoinColumns, но не могу найти способ подключить правильную сущность. Я также посмотрел на сопоставленные суперклассы, потому что есть DiscriminatorColumn, но это также, кажется, неправильный подход. Если я правильно понимаю, суперкласс сам по себе не может быть сущностью, поэтому я не могу создать еду.
Любая помощь приветствуется. Я уверен, что мне здесь не хватает чего-то простого.