Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод каталога с учетом иерархии из MySQL, Какие варианты реализации иерархического 
:(
    Опции темы
eurobax
  Дата 25.11.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.11.2009

Репутация: нет
Всего: нет



Ищу лучшее решение по производительности/гибкости для MySQL. А задача такая:
Есть каталог товаров

1. Бытовая техника
1.1. Телевизоры
1.1.1.Плазменные
1.1.1.1. LG
1.1.1.1.1 LG 101
1.1.1.1.2 LG 202
1.1.1.1.3 LG 505
1.1.1.2. Samsung
1.1.1.2.1 Sam 1001
1.1.1.2.2 Sam 2002
1.1.1.2.3 Sam 5005
и т.д.

Коды типа "1.1.1.2.3" я привел для наглядности, я не храню их в записи, т.к. иерархия может быть бесконечная, а число элементов в группе может быть сотни тысяч.
И мне нужно вывести записи с учетом этого порядка (как указано вверху) - сперва первая группа, потом все ее вложенные элементы, а потом уже следующая группа.

Какие задачи еще должны решаться:
- определение полного пути до элемента
- определение принадлежности элемента группе (в т.ч. и ее подгруппам)
- быстрый перенос ветки дерева в другую ветку.

1. Nested Sets я уже рассмотрел, они не подходят под последнее условие.

2. Есть еще вариант, когда я храню все отношения между группами в отдельной таблице, там все отлично, все условия решаются одним запросом к БД. НО, иерархический вывод приходится делать скриптами (тоже один запрос, а потом рекуривная сортировка)

Какие еще могут быть предложения?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0364 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.