Проектирование дерева

дедушка АУ

Новичок
Проектирование дерева

опишу ситуацию:
есть дерево основанное на nested sets..
Новости
---Подраздел
---Подраздел
Теория/Практика
---Статьи
---Подраздел
---Подраздел
Раздел
Раздел
О проекте

вопрос в следующем: есть подраздел статьи ... который выводит все свои подразделы например "статьи о том" "статьи об этом" ...в nested sets эти разделы не внесены...

ну так вот как мне выводить обратный путь вида:
Главная > Теория/Практика > Статьи > статьи о том > статья1

ведь получая id подраздела "Статьи" я могу вывести только
Главная > Теория/Практика > Статьи

т.е. выходит в nested sets так же необходимо вносить разделы подраздела "Статьи", так?

-~{}~ 07.04.05 13:08:

кароч надо =)
 

Макс

Старожил PHPClub
вопрос в следующем: есть подраздел статьи ... который выводит все свои подразделы например "статьи о том" "статьи об этом" ...в nested sets эти разделы не внесены...
внеси

ну так вот как мне выводить обратный путь вида:
Главная > Теория/Практика > Статьи > статьи о том > статья1
этот путь можно разбить на 2 части :
1. Главная > Теория/Практика > Статьи
2. статьи о том > статья1
сгенерируй 2 части отдельно а потом объедини их
 

дедушка АУ

Новичок
я так раньше и делал ...
но это же неправильно и некрасиво :)

-~{}~ 07.04.05 14:01:

вообщем решение такое

две таблицы
tree и tree_data
в первой только структура дерева
во второй данные об элементах дерева

пример: получаем id текущего подраздела
и для получения пути делаем запрос след вида
"SELECT t3.title, t2.id FROM tree as t1, tree as t2, tree_data as t3 WHERE t3.tree_id = t1.id AND t1.id='12' AND t2.left < t1.left AND t2.right > t1.right"
таким образом получая всех родителей данного элемента дерева с id = 12

-~{}~ 08.04.05 18:51:

все-таки кое-что мне не ясно
допустим есть у меня след таблицы:
tree (cid, cleft,cright, clevel), tree_data (cid, title, tablename)
и допустим таблица soft (soft_id, cid, soft_description)

т.е. название софта хранится в таблице tree_data (поле title) а название таблицы в которой находятся его свойства в поле tablename ...

т.е. получая cid элемента дерева я выбираю его title и tablename, и, узнав к какой таблице он пренадлежит (в данном случае к таблице soft) я вызываю функцию которая выбирает все дополнительные свойства данного элемента

вопрос вот в чем ... при выводе дерева я должен где-то хранить url раздела, допустим есть раздел "Софт" у которого url: download.php?page=soft. в принципе можно просто передавать везде cid (типа module.php?id=10) но тогда трудно будет запомнить url той же страницы с софтом .. гораздо понятнее download.php?page=soft (mod_rewrite не трогаем).
т.е. хранить ли мне url'ы ? и если хранить то в каком виде

з.ы. надо еще учитывать тот факт что нужно будет из урла download.php?page=soft понять что это раздел узнать его cid и тп
 
Сверху