powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка дерева.
13 сообщений из 13, страница 1 из 1
Сортировка дерева.
    #32233623
Geologist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дерево реализовано методом Nested sets, описаным Joe Celko. Т.е. таблица имеет следующую структуру:

id
left
right
name
...

Чтобы получить правильное дерево достаточно отсортировать результат по полю left. При сортировк по какому-либо другому полю, соблюдение иерархии, конечно, теряется. Как в данном случае построить запрос, чтобы в результате получить дерево, отсортированное, например, по полю name или любому другому, но с сохранением иерархиии?

Спасибо.
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32233665
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не все понял... потому не читал о данных технологиях... но... если тебе нужно результат запроса отсортировать по полю, скажем left пиши

SELECT * FROM table WHERE (условия) ORDER BY left
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32233666
Geologist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправочка: я не чайник :-)
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32233737
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправочка: я тоже, и о Вашем кровнея вообще то ничего не говорил...

я сразу сказал что не понял сути вопроса... и ответил так как понял, если ето не то.. изьясняйтесь конкретнее...
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32233767
Geologist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Куда ж ещё конкретней? - Nested Sets, дерево, Joe Celko.

http://www.dbmsmag.com/9603d06.html в конце концов.

А не поняли, так почитайте описание данного метода ;)
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32233879
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geologist - ты думаешь, кто-то захочет тебе помогать - если ты будешь в таком тоне разговаривать?
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32234089
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geologist
ИМХО это неправильная постановка задачи. У тебя же иерархия задается сортировкой по left, ЛЮБАЯ ДРУГАЯ сортировка - это нарушение иерархии.

Приведи пример дерева, которое у тебя есть и которое ты хочешь получить ?
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32234533
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал статью , и нигде не увидел зачем надо сортировать, для построения дерева?!
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32234773
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mahoune
бегло просмотрел статью, там вроде такого нет. Где-то на
http://dev.e-taller.net/dbtree была статья, там было нарисовано дерево и проставлены левые и правые смещения. Если хорошо посмотреть, то можно понять, что отсортировав по left получим структуру дерева.
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32234972
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле, надо понять как человек хочет отсортировать дерево?!
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32235218
Konrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В свое время плотно работал с древовидными структурами, и для правильного расположения ветвей, как было отмечено в теме, необходима сортировка по полю left.
Однако автор не уточнил, для чего ему нужна сортировка по полю name. Если допустить, что автор пишет форум, где ему нужно отсортировать темы по заголовкам (при соблюдении в теме иерархии ответов), то проблему можно решить добавлением в таблицу внешнего ключа name_source, ссылающегося на поле id. В этом случае все подчиненные позиции будут хранить идентификатор своего корневого узла. Запрос будет включать в конструкции ORDER BY.. примерно следующее:
Код: plaintext
... ORDER BY name_source, left


Ваше дерево подразумевает совокупность нескольких корневых узлов (ветвей) и вы хотите соблюсти иерархию внутри каждой ветви, а сами ветви сортировать в произвольном порядке?
Иначе я слабо представляю, как логически можно сохранить иерархию, отсортировав дерево по другому признаку, отличному от признака подчиненности..
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32235297
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле есть еще другой вариант. Каталог товаров. Есть некая иерархия, но показывать нужно это дерево с учетом иерархии, а при этом все вложенные узлы следующего уровня показывать в алфавитном порядке.

Как я понял, описываемы сдесь метод, работает очень быстро, но, при этом, есть ограничения. т.к. существуют и другие варианты построения деревьев с точки зрения БД. В которых подобную задачку решить проще.
...
Рейтинг: 0 / 0
Сортировка дерева.
    #32239745
alex_24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У...
А я думал вы тут дерево индексов сортируете.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сортировка дерева.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]