Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Древовидный каталог
 
 автор: Sfinks   (22.02.2012 в 00:19)   письмо автору
 
 

Задача: Получив ID элемента подняться по дереву и получить всех предков.
Ответ: Рекурсия.

По поиску посмотрел, и в общем-то ниче утешительного. Поэтому решил обновить тему, с главным вопросом: С 2006 года ниче не изменилось? В мускуле встроенных рекурсий не появилось? Все делать через ПХП и кучу запросов?

  Ответить  
 
 автор: cheops   (22.02.2012 в 00:26)   письмо автору
 
   для: Sfinks   (22.02.2012 в 00:19)
 

Внешние ключи в InnoDB не выход?

  Ответить  
 
 автор: Sfinks   (22.02.2012 в 02:51)   письмо автору
 
   для: cheops   (22.02.2012 в 00:26)
 

Вот мне этот вопрос ни о чем не говорит =) У меня в Мускуле логика работает, а теория страдает. Интуитивно как-то...... ))

  Ответить  
 
 автор: cheops   (22.02.2012 в 10:14)   письмо автору
 
   для: Sfinks   (22.02.2012 в 02:51)
 

В MySQL несколько типов таблиц, наиболее известные это MyISAM и InnoDB. Каждая из них обладает уникальными характеристиками, например, MyISAM очень быстрые, так как не поддерживают транзакции и не расходуют ресурсы на них, зато поддерживают полнотекстовый поиск. InnoDB более медленные, но поддерживают транзакции и другие механизмы, вроде внешних ключей, когда удаление или обновление ключа приводит к каскадному удалению или обновлению всех потомков.

PS Существуют и подводные камни, очень трудно настроить сервер на эффективную поддержку одновременно и MyISAM и InnoDB. Вернее не трудно, если у вас много памяти на сервере. Если количество выделяемой MySQL памяти ограничено, очень часто настраивают только один механизм, а другой остается в ауте. Еще сложнее с виртуальным хостингом, как и для каких его целей настраивают зачастую выяснить довольно проблематично.

  Ответить  
 
 автор: Sfinks   (22.02.2012 в 11:02)   письмо автору
 
   для: cheops   (22.02.2012 в 10:14)
 

Спасибо за пояснение!

Не, значит внешние ключи InnoDB - это не то. Я имел ввиду не обновление или удаление, а SELECT. Родительской ветки, либо всех потомков, либо еще чего. Valick меня правильно понял.

  Ответить  
 
 автор: Valick   (22.02.2012 в 07:36)   письмо автору
 
   для: Sfinks   (22.02.2012 в 00:19)
 

nested sets

  Ответить  
 
 автор: Sfinks   (22.02.2012 в 10:58)   письмо автору
 
   для: Valick   (22.02.2012 в 07:36)
 

Спасибо! Красиво ) Еще не дочитал, но красиво!
Видел подобные решения (с left и right key), но где parent_id выкидывают - первое!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования