|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Дерево реализовано методом Nested sets, описаным Joe Celko. Т.е. таблица имеет следующую структуру: id left right name ... Чтобы получить правильное дерево достаточно отсортировать результат по полю left. При сортировк по какому-либо другому полю, соблюдение иерархии, конечно, теряется. Как в данном случае построить запрос, чтобы в результате получить дерево, отсортированное, например, по полю name или любому другому, но с сохранением иерархиии? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 10:05 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
я не все понял... потому не читал о данных технологиях... но... если тебе нужно результат запроса отсортировать по полю, скажем left пиши SELECT * FROM table WHERE (условия) ORDER BY left ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 10:41 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Поправочка: я не чайник :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 10:42 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
поправочка: я тоже, и о Вашем кровнея вообще то ничего не говорил... я сразу сказал что не понял сути вопроса... и ответил так как понял, если ето не то.. изьясняйтесь конкретнее... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 11:21 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Куда ж ещё конкретней? - Nested Sets, дерево, Joe Celko. http://www.dbmsmag.com/9603d06.html в конце концов. А не поняли, так почитайте описание данного метода ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 11:35 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Geologist - ты думаешь, кто-то захочет тебе помогать - если ты будешь в таком тоне разговаривать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 12:30 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Geologist ИМХО это неправильная постановка задачи. У тебя же иерархия задается сортировкой по left, ЛЮБАЯ ДРУГАЯ сортировка - это нарушение иерархии. Приведи пример дерева, которое у тебя есть и которое ты хочешь получить ? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 14:10 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
Прочитал статью , и нигде не увидел зачем надо сортировать, для построения дерева?! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2003, 17:53 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
mahoune бегло просмотрел статью, там вроде такого нет. Где-то на http://dev.e-taller.net/dbtree была статья, там было нарисовано дерево и проставлены левые и правые смещения. Если хорошо посмотреть, то можно понять, что отсортировав по left получим структуру дерева. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 01:10 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
На самом деле, надо понять как человек хочет отсортировать дерево?! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 10:16 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
В свое время плотно работал с древовидными структурами, и для правильного расположения ветвей, как было отмечено в теме, необходима сортировка по полю left. Однако автор не уточнил, для чего ему нужна сортировка по полю name. Если допустить, что автор пишет форум, где ему нужно отсортировать темы по заголовкам (при соблюдении в теме иерархии ответов), то проблему можно решить добавлением в таблицу внешнего ключа name_source, ссылающегося на поле id. В этом случае все подчиненные позиции будут хранить идентификатор своего корневого узла. Запрос будет включать в конструкции ORDER BY.. примерно следующее: Код: plaintext
Ваше дерево подразумевает совокупность нескольких корневых узлов (ветвей) и вы хотите соблюсти иерархию внутри каждой ветви, а сами ветви сортировать в произвольном порядке? Иначе я слабо представляю, как логически можно сохранить иерархию, отсортировав дерево по другому признаку, отличному от признака подчиненности.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 12:33 |
|
Сортировка дерева.
|
|||
---|---|---|---|
#18+
На самом деле есть еще другой вариант. Каталог товаров. Есть некая иерархия, но показывать нужно это дерево с учетом иерархии, а при этом все вложенные узлы следующего уровня показывать в алфавитном порядке. Как я понял, описываемы сдесь метод, работает очень быстро, но, при этом, есть ограничения. т.к. существуют и другие варианты построения деревьев с точки зрения БД. В которых подобную задачку решить проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2003, 13:23 |
|
|
start [/forum/topic.php?fid=47&msg=32235297&tid=1855850]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 460ms |
0 / 0 |