Реализация "дерева" на РНР
От: SashaMOB Украина  
Дата: 29.05.07 16:28
Оценка:
Вопрос такой: есть базада даных мускула, в которой находиться информация в таком виде:

id id_parent value priority

1 0 ROOT [1] 0
2 1 PARENT [1] 0
3 2 PARENT [2] 0
4 0 ROOT [2] 0
5 0 ROOT [3] 0

Тоисть следущий элемент связян с рутовым через его id.
Все рутовые элементы идут с возростающим приоритетом с единичным инкрементом. Но если надо добавить еще один рут, то добавляю в конце списка.
Может кто-то натолкнуть на мысль, как сделать так, чтобы добавлять рутовый элемент в любом месте без вреда для вывода (поскольку вывожу с помощью ASC и сортирую по приоритету) ? Тогда надо каким-то образом смещать приоритеты для каждого из рутов, но как ?
<b>Sasha</b>MOB
Re: Реализация "дерева" на РНР
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.07 02:24
Оценка:
Здравствуйте, SashaMOB, Вы писали:
SMO>Тоисть следущий элемент связян с рутовым через его id.
SMO>Все рутовые элементы идут с возростающим приоритетом с единичным инкрементом. Но если надо добавить еще один рут, то добавляю в конце списка.
SMO>Может кто-то натолкнуть на мысль, как сделать так, чтобы добавлять рутовый элемент в любом месте без вреда для вывода (поскольку вывожу с помощью ASC и сортирую по приоритету) ? Тогда надо каким-то образом смещать приоритеты для каждого из рутов, но как ?

здесь
Автор(ы): Глеб Земсков
Дата: 23.05.2006
Разработка иерархических справочников – достаточно часто встречающаяся задача в бизнес-приложениях. Существует достаточно много алгоритмов хранения дерева в реляционной модели. Но им свойственны те, или иные недостатки. Самый распространенный вариант, когда запись имеет ссылку на родительский ключ. Это один из наиболее неоптимальных алгоритмов, так как его сложно реализовать и он неоптимален по доступу. Единственный плюс, что некоторые БД поддерживают рекурсивные запросы, которые облегчают работу с такой схемой. Алгоритм Nested Set более оптимален, но обладает недостатком. Скорость вставки нелинейна, и затрагивает данные, которые не должны участвовать в транзакции. В то же время иерархические справочники можно сделать достаточно просто. Нужно просто воспользоваться классификатором.
и здесь
Автор(ы): Михаил Голованов
Дата: 28.01.2002
уже читал?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.