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

Vavenko

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

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

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


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

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

Vavenko

Новичок
alpine

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

alpine

Новичок
Vavenko
как несложно догадаться а не у листа cat_right(r) - cat_left(l) != 1

-~{}~ 30.11.05 11:11:

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

Vavenko

Новичок
alpine
Не понятно, как организовать хранение описаний разделов.

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

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

По какому критерию определять, что показать пользователю?
 

Groove

Новичок
Vavenko
можешь как вариант В Nested Sets хранить и обработчик (в виде имени файла), а уже в нем делай и выводи все что пожелает душенька
 

Vavenko

Новичок
Groove
Тоесть на каждый раздел отдельный обработчик?

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

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

alexhemp

Новичок
Vavenko

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

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

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

Groove

Новичок
просто в этом случае теряются различие между разделами и не разделами.
ты сможешь для каждого узла дерева прописать что ему делать: отображать список, добавлять, удалять, редактировать что либо.
а можешь оставить без обработчика узел вообще, добавив в него поле "содержимое страницы", тогда получится простое создание страниц
например было:
/nokia/
добавляешь подузел
/nokia/about/
не ставишь для него обработчика, зато в поле "содержание страницы" пишешь общее описание телефонов марки Nokia, или о компании... ну сам решишь

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

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

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

-~{}~ 30.11.05 16:31:

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

Vavenko

Новичок
Groove
вариант с добавлением обработчика не совсем подходит в случае, когда формированием разделов будет заниматься посторонний человек.
 

alexhemp

Новичок
Groove
То как структура выглядит на экране и то что храниться в базе - разные вещи

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

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

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

При выводе уже рисовать как хочется.
 

tf

крылья рулят
Popoff
жаль только твои примеры мной плохо перевариваются.
но идеи понятны
ps. давно хотел тебе это сказать
 

Popoff

popoff.donetsk.ua
tf
Возможно, у тебя есть предложения, как сделать их понятнее?
 

tf

крылья рулят
Popoff отголоски бродят в голове.
как только так сразу
 
Сверху