Вопрос про деревья

no_santa

Снегур
Вопрос про деревья

Делаю таблицу в БД на MySQL по следующему принципу
1. id
2. parent_id
3. etc

Суть структуры - дерево, с неограниченным количеством вложений

Проблема возникла при разработке операции удаления детей.
1. Как сформулировать один запрос к базе, чтобы удалились все дети данного элемента, а также все дети, вложенные в данных детей и т.д. (id -> parent_id,id -> parent_id,id -> parent_id,id -> parent_id...)
2. Как одним запросом получить всю ветку до родителя (parent_id -> id, parent_id -> id, parent_id -> id, parent_id -> id...)
3. Как одним запросом получить всю ветку до родителя, с родственниками (перечень ближайших родственников сейчас получаю так - SELECT * FROM `table` WHERE `parent_id`=... ORDER BY `sortorder`. Как сделать глобальную вендетту, то есть получить не только братьев и сестер, но и дядюшек, и тетушек и т.д.?)

Заранее большое спасибо! Еще большее спасибо и доброго здоровья тому, кто даст примеры запросов!!!

-~{}~ 05.12.08 17:25:

Просьба сюда не посылать http://phpclub.ru/detail/article/2002-06-03 - не то.
 

no_santa

Снегур
Пока, как временное решение, сделал на php.

Неужели нельзя средствами mysql, без введения дополнительных полей?

Хотелось-бы именно так, потому что таблица маленькая, менее тысячи записей, но обращений к ней много.
---------------------------------
Кстати, а можно-ли одним запросом mysql быстро получить путь наверх в данной ситуации?
 

Wicked

Новичок
Неужели нельзя средствами mysql, без введения дополнительных полей?
тебе полей жалко или что? :)

Хотелось-бы именно так, потому что таблица маленькая, менее тысячи записей, но обращений к ней много.
если таблица маленькая, то проще выбирать ее всю, а дальше с помощью пхп все искать.

Кстати, а можно-ли одним запросом mysql быстро получить путь наверх в данной ситуации?
ты это уже спрашивал, а я уже ответил
 

no_santa

Снегур
Автор оригинала: Wicked
тебе полей жалко или что? :)
Проект достаточно толстый, я делаю только небольшую его часть. Эджести давно-бы сделал, да компанионы возражают.... Чужая база :(

Автор оригинала: Wicked если таблица маленькая, то проще выбирать ее всю, а дальше с помощью пхп все искать.
Пока так и делаю. Проблема в том, что таблица-то маленькая, да запросов много. Вот и ищу пути оптимизации.

Автор оригинала: Wicked ты это уже спрашивал, а я уже ответил
Брат мой любезный, я не вкурил.... Если можешь, милый друг мой, разжуй, а? Спасибо тебе огромаднейшее!

-~{}~ 07.12.08 22:41:

остановился на php. Немного оптимизировал ключи для запросов, чем добился более-менее приемлемой скорости.
 
Сверху