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

Форум MySQL

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

 

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

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

тема: Древо иерархии...
 
 автор: Dimon.st   (26.02.2006 в 19:52)   письмо автору
 
 

Здравствуйте, помогите разобраться с иерархической структурой...
Имеется ввиду система хранения иерархии в mysql, где для каждой строчки сушествует индентификатор и индетификатор родительского раздела, все бы хорошо и понятно, но как построить всю структуру целиком и полностью, или что сложнее часть ее? Ведь не делать же по запросу на каждую строчку, не рационально получается...
Для полной структуры можно конечно извлечь все строчки и далее месным языком, но ради 5 строк извлекать весь массив значений - это не по человечески...
Зарание спасибо

   
 
 автор: cheops   (26.02.2006 в 23:04)   письмо автору
 
   для: Dimon.st   (26.02.2006 в 19:52)
 

Не очень понятно, что вызывает трудности, может рассмотрим на более конкретном примере? Что строим? Да, иногда неэффективно разворачивать цепочку иерархии, для этого прибегают к денормализации - т.е. попросту в подчинённых таблицах дублируют информацию из таблиц, стоящих вверху по иерархии.

   
 
 автор: Dimon.st   (27.02.2006 в 01:03)   письмо автору
 
   для: cheops   (26.02.2006 в 23:04)
 

Наверно зря я создал этот топик, ведь это почти аналогия топику на форуме PHP, хотя...
Итак таблица:

--------------------------------------------------------------------------------------------------
|id|fid|              title
--------------------------------------------------------------------------------------------------
|1|0|Главное сообщение (топик) - родитель
|2|1|Ответ на топик - потомок 1 степени
|3|1|Ответ на топик №2 - потомок 1 степени
|4|2|Ответ на сообщение 2 - потомок 2 степени
|5|3|Ответ на сообщение 3 - потомок 2 степени
|6|4|Ответ на сообщение 4, которое в свою очередь является ответом на сообщение 2 - потомок 3 степени
---------------------------------------------------------------------------------------------------

Где fid это родитель для id.
Нужно средствами скьюл имея параметр получить определенные строчки...
Пример:
имея 1 получить все строчки
имея 2 получить строчки 2,4,6
имея 3 получить строчки 3,5
имея 4 получить строчки 4,6
имея 5 получить строчку 5
имея 6 получить строчку 6
Реально ли это реализовать, притом не 6 (для более сложной иерархии большим количеством) запросами, а меньшим количеством, лучше одним??

   
 
 автор: cheops   (27.02.2006 в 13:22)   письмо автору
 
   для: Dimon.st   (27.02.2006 в 01:03)
 

Без рекурсии тут не обойтись - вернее можно, но получится хуже

PS Лучше действительно заводить лишь одну тему.

   
Rambler's Top100
вверх

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