Nested Sets - как правильно привязать данные к разделам?

  • Автор темы Автор темы Vavenko
  • Дата начала Дата начала

Vavenko

Новичок
Nested Sets - как правильно привязать данные к разделам?

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

Например:
Мобильные телефоны/Nokia/6230i
Телевизоры/Плазма/Fujitsu/model


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

Я пробовал вычислять уровень вложенности и родительский раздел, на котором сейчас пользователь, потом для каждого уровня вложенности и раздела писать отдельную функцию. Но сам понимаю, что это бред.
 
alpine

Я так понимаю, что это поможет вычислить самый дочерний элемент раздела. Но как быть с промежуточными?
 
Vavenko
как несложно догадаться а не у листа cat_right(r) - cat_left(l) != 1

-~{}~ 30.11.05 11:11:

И как я понял если у тебя лист то ты выводишь описание товара иначе описание раздела. Что не понятно?!
 
alpine
Не понятно, как организовать хранение описаний разделов.

Например, если пользователь зашел в раздел Nokia, ему должны быть показаны все nokia с кратким описанием.

А если просто в раздел телефоны - то соответственно все телефоны...

По какому критерию определять, что показать пользователю?
 
Vavenko
можешь как вариант В Nested Sets хранить и обработчик (в виде имени файла), а уже в нем делай и выводи все что пожелает душенька
 
Groove
Тоесть на каждый раздел отдельный обработчик?

А не возникнут ли проблемы при создании нового раздела администратором сайта.

Объясните популярние плз. а то что-то не допонял..
 
Vavenko

Не надо хранить в дереве разнородные данные. Заведи отдельно бренды, отдельно категории товаров.

В товаре храни идентификатор категории и идентификатор бренда.

Очевидно если человек выбрал категорию "мобильные телефоны" ему дальше можно ПОКАЗАТЬ список брендов. Бренды само сабой нужно выбрать из списка товаров, т.е. показать только те, товары под которыми есть в этой категории.
 
просто в этом случае теряются различие между разделами и не разделами.
ты сможешь для каждого узла дерева прописать что ему делать: отображать список, добавлять, удалять, редактировать что либо.
а можешь оставить без обработчика узел вообще, добавив в него поле "содержимое страницы", тогда получится простое создание страниц
например было:
/nokia/
добавляешь подузел
/nokia/about/
не ставишь для него обработчика, зато в поле "содержание страницы" пишешь общее описание телефонов марки Nokia, или о компании... ну сам решишь

далее: для страницы /nokia/ прописываешь обработчик
nokia_list_models.php

в нем формируешь "все nokia с кратким описанием"

ну и так далее, додумай сам...

-~{}~ 30.11.05 16:31:

alexhemp
можно и так, когда структура ясна полностью...
но начальное условие было:
Имеется структура сайта с неопределенным количеством вложений, реализованная с помощью вложенных множеств.
Мобильные телефоны/Nokia/6230i
Телевизоры/Плазма/Fujitsu/model
 
Groove
вариант с добавлением обработчика не совсем подходит в случае, когда формированием разделов будет заниматься посторонний человек.
 
Groove
То как структура выглядит на экране и то что храниться в базе - разные вещи

Для меня очевидно, что попытка хранить в одной таблице разнородные данные ни к чему хорошему не приведет. Исходная задача поставлена неверно, и решать ее в том виде как она есть - не правильно.

Правильно перепроектировать базу.

Хранить отдельно разделы, отдельно бренды, отдельно сами товары.

При выводе уже рисовать как хочется.
 
Popoff
жаль только твои примеры мной плохо перевариваются.
но идеи понятны
ps. давно хотел тебе это сказать
 
tf
Возможно, у тебя есть предложения, как сделать их понятнее?
 
Popoff отголоски бродят в голове.
как только так сразу
 
Сверху