Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не правильно работает рекурсивная функция [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Не правильно работает рекурсивная функция
EuGen Администратор
Отправлено: 13 Февраля, 2014 - 15:14:56
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Баланс между "выбрать всё, построить в приложении" и "выбрать только нужное, запросить рекурсивно" никогда не будет найден. Потому что это попытка выбрать из двух плохих вариантов.

Если нужно построение деревьев, особенно если оно нужно часто, настоятельно рекомендую изменить структуру таблицы и создать таблицу-замыкание (closure table). Достаточно неплохой и краткий обзор можете найти здесь.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DelphinPRO
Отправлено: 13 Февраля, 2014 - 15:27:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




А чем плохо выбрать все, если все равно эти данные нужно будет отобразить?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
EuGen Администратор
Отправлено: 13 Февраля, 2014 - 15:44:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




DelphinPRO пишет:
А чем плохо выбрать все, если все равно эти данные нужно будет отобразить?

Можно либо "выбрать только то, что нужно отобразить" (то есть - рекурсивно сделать несколько запросов), либо "выбрать всё", а в приложении "разобраться, что вывести". Но первый случай плох тем, что имеем множество запросов на одну операцию построения дерева, а второй - тем, что при больших объёмах таблицы "выбрать всё" - это плохая идея.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB