#inheritance #symfony1 #concrete
#наследование #symfony1 #конкретный
Вопрос:
Я разрабатываю приложение на основе Symfony Doctrine. Я использовал стратегию наследования конкретной таблицы.Но теперь я столкнулся с некоторыми проблемами. У меня есть следующие таблицы:
Продукт: обладает некоторыми свойствами
Компьютер: расширяет продукт.
Ноутбук: расширяет возможности компьютера.
Ipad: расширяет возможности компьютера.
…. и так далее .. много таблиц с разными категориями.У меня есть следующие вопросы.Кто-нибудь может помочь или указать источник, пожалуйста?
-
На моей главной странице у меня есть окно поиска, которое выполняет поиск по названию продукта. Для какой таблицы я должен написать поисковый запрос?
-
Второй вопрос. Снова на моей главной странице я просмотрел некоторые продукты из другой таблицы.Затем пользователь нажимает на один из этих продуктов. Как я буду решать, какая таблица идентифицирует ее?
Ответ №1:
Конкретное наследование дает вам, возможно, самую чистую схему, но оно не позволяет выполнять запросы к нескольким таблицам. Итак, при конкретном наследовании вы должны написать свой запрос для каждого дочернего класса модели и объединить результаты. На вашем месте я бы прочитал эту страницу о поиске в symfony и написал запрос lucene для достижения этого многоклассового поиска. Это будет быстрее и, возможно, проще.
Маршрут для вашего продукта должен выглядеть следующим образом: /product/:product_category /:product_subcategory/id Вы не можете найти свой продукт с идентификатором, который может быть не уникальным в таблицах.
Комментарии:
1. Спасибо greg0ire за проявленный интерес. Я обязательно прочитаю эту статью. Также я отредактировал второй вопрос.