Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
У меня есть задачка над которой я бьюсь уже не оди день, очень много решений, но толковых нет, может кто что посоветует или предложит. Суть в том чтобы создать простое дерево каталогов в MySql. Самое простое что я придумал это вот такая таблица
Я думаю здесь все понятно. Главный вопрос в том как здесь работать без рекурсии, или какую структуру нужно создать что-бы не нужно было применять рекурсию для вывода всего дерева или конкретного каталога с полными путями.
У меня есть еще пару идей, но там целая система, процедуры, триггеры, сложные представление. Но как по мне так они будут тупить при работе с большими деревьями.
У кого какие идеи будут? Я уверен что не перед одним мной стояла такая задача, может кто то ее уже решил?
DeepVarvar
Отправлено: 21 Октября, 2012 - 02:09:51
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
Вот это крутотень, я и не знал про такие вещи. Спасибо!!!
DeepVarvar
Отправлено: 21 Октября, 2012 - 03:28:32
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Вы прикалываетесь?
Я в соседней иеме то же самое посоветовал, где вы предложили автору вопроса просто отсортировать.
Надеюсь что и вправду был полезен.
Покинул форум
Сообщений всего: 454
Дата рег-ции: Апр. 2012
Помог: 7 раз(а)
В прошлой теме я подумал что это "ругань" какаето, а когда во второй раз увидел, я подумал что человек так не может ругаться, решил проверить а тут имхо, и вправду не ругань
DeepVarvar
Отправлено: 21 Октября, 2012 - 09:33:55
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
я и сам с этой темы прочитал про "вложенные множества" таки разобрался. в будющем будет очень актуально
по теме кстати вот еще что находил: http://www[dot]getinfo[dot]ru/article610[dot]html
http://phpclub.ru/detail/article/db_tree
Nested Set - отличная штука, но не серебряная пуля. На записи оверхед приличный, а на развесистых деревьях - просто огромный. И тупой Adjacency List может быть более рациональным решением.
----- PostgreSQL DBA
EuGen
Отправлено: 21 Октября, 2012 - 18:45:08
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
И, вдобавок, я бы дал общую рекомендацию вообще стараться избегать деревьев в SQL в каком бы то ни было виде.
Nested sets - хорошо только когда идет множество запросов на выборку при редких запросах на запись (по сути, это в основном OLAP-приложения)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
armancho7777777
Отправлено: 21 Октября, 2012 - 19:39:35
Активный участник
Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011 Откуда: Москва
Помог: 221 раз(а)
Отдельное спасибо знатокам )
Было интересно ваше мнение ) (Добавление)
Мелкий пишет:
А перед тем, как окончательно определиться - не помешает подумать ещё раз: http://habrahabr.ru/post/47280/
+1
caballero
Отправлено: 21 Октября, 2012 - 20:00:43
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
лично я юзаю вариант с материализованными путями. Любая выборка или изменение одном запросом.
Цитата:
И, вдобавок, я бы дал общую рекомендацию вообще стараться избегать деревьев в SQL в каком бы то ни было виде.
если бизнес-логика задачи предполагает некую таксономию, что сплошь и рядом,
то куда деваться.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.