Наследование конкретной таблицы Symfony

#inheritance #symfony1 #concrete

#наследование #symfony1 #конкретный

Вопрос:

Я разрабатываю приложение на основе Symfony Doctrine. Я использовал стратегию наследования конкретной таблицы.Но теперь я столкнулся с некоторыми проблемами. У меня есть следующие таблицы:

Продукт: обладает некоторыми свойствами

Компьютер: расширяет продукт.

Ноутбук: расширяет возможности компьютера.

Ipad: расширяет возможности компьютера.

…. и так далее .. много таблиц с разными категориями.У меня есть следующие вопросы.Кто-нибудь может помочь или указать источник, пожалуйста?

  • На моей главной странице у меня есть окно поиска, которое выполняет поиск по названию продукта. Для какой таблицы я должен написать поисковый запрос?

  • Второй вопрос. Снова на моей главной странице я просмотрел некоторые продукты из другой таблицы.Затем пользователь нажимает на один из этих продуктов. Как я буду решать, какая таблица идентифицирует ее?

Ответ №1:

Конкретное наследование дает вам, возможно, самую чистую схему, но оно не позволяет выполнять запросы к нескольким таблицам. Итак, при конкретном наследовании вы должны написать свой запрос для каждого дочернего класса модели и объединить результаты. На вашем месте я бы прочитал эту страницу о поиске в symfony и написал запрос lucene для достижения этого многоклассового поиска. Это будет быстрее и, возможно, проще.

Маршрут для вашего продукта должен выглядеть следующим образом: /product/:product_category /:product_subcategory/id Вы не можете найти свой продукт с идентификатором, который может быть не уникальным в таблицах.

Комментарии:

1. Спасибо greg0ire за проявленный интерес. Я обязательно прочитаю эту статью. Также я отредактировал второй вопрос.