Как я могу искать категории подуровня, используя mysql? - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть база данных из 30000 товаров, и всем товарам присвоены разные категории. Существует отдельная таблица для всех категорий и подкатегорий, которые также хранятся в одной таблице. Структура таблицы примерно такая:

Category_mst

category_id_pk, category_name, parent_id

Product_mst

product_id_pk, product_name, category_id_fk (ссылка на Category_mst-> category_id_pk)

Категории сохраняются до любого количества подуровней. Так что могут быть категории, как показано ниже

Одежда> Рубашки> Дети> Красный цвет

Продукты хранятся на любом уровне категории. Я хочу сделать запрос или сценарий php, который может найти все категории, в которых нет продуктов (до любого подуровня).

Как я могу это сделать?

Заранее спасибо.

1 Ответ

1 голос
/ 19 декабря 2011

Вы пытаетесь сохранить иерархические данные в базе данных.
Наивный подход к этому очень плохой, потому что MySQL не поддерживает рекурсивные запросы (в отличие от Oracle или SQL-сервера).
Измените дизайн вашей базы данных.

См .: Иерархические данные модели вложенного набора
Реализация иерархической структуры данных в базе данных

...