Наследование бетонного стола Symfony - PullRequest
1 голос
/ 11 июня 2011

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 11 июня 2011

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

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

...