Re[3]: дерево в базе
От: Au1  
Дата: 01.11.06 09:07
Оценка:
Здравствуйте, Mckey, Вы писали:



M>
M>У1
M> - У2_1
M>    + У3_2
M> - У2_2
M>    - У3_1
M>    - У3_2
M>


M>И по знакам надо посчитать суммы (я уж не говорю если там будут не знаки, а например коэффициенты) — такая матчасть даже для Oracle не помогает...

M>Т.е. мы конечно попытались решить этим способом нашу задачу — не сильно помогло — тормоза и невозможность по нижнему уровню найти всех предков с соответсвующими коэф с которыми они попадут к этому предку


Гм... а в чем проблема?


select sum(ct) from 
  (select *
     from table_name
       start with id = Param
       connect by prior id = parent_id
  )


Для каждого узла (сомнительно, что это реально надо). Если грамотно расставить индексы (по parent_id и по id) проблем должно быть немного.

В проблему поиска предка по к-ту я, честно говоря, не въехал... Ну, делаем, там,
select * from table_name where parent_id = :param and ct = :param2

чем плохо? При наличии индексов...

Если нужно пройтись по дереву снизу вверх и чего-то там посчитать, то это вроде тоже решается так или иначе.

Хотя признаю: спал сегодня мало, могу нести разную ерунду...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.