Загрузка дерева из БД

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Загрузка дерева из БД

What hosting to choose?

GeorgeSoca » 13 окт 2015, 03:37

Pa vart webbhotell kan ni kanna er trygg! Forutom att vi anvander oss av speglade harddiskar pa alla vara servrar sa tar vi aven backup tva ganger per dygn pa separata servrar. Vi anvander oss av ISPmanager som kontrollpanel. ISPmanager ar en kontrollpanel som gor det enkelt att administrera sin hemsida. Hos oss kan ni lagga hur manga hemsidor och domaner ni onskar under ett webbhotellskonto.
virtual hosting

Лелик_1044 » 10 июн 2006, 16:31

Проблему решил построением динмаического дерева.
Объясню сейчас, есть таблица сожержащая 4000000 записей.
Уровень ноды колеблется.
Всякие проверки сказываются на времени. У меня мощная машина и то видно что думает, у заказчика 2-3 пны.

YurikGL » 21 май 2006, 19:14

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

vunder » 21 май 2006, 10:14

YurikGL писал(а):Не проще создать 4 таблицы. В первой хранятся республики, во второй - области, в третьей - города, в четвертой магазины?
Для конкретного примера - проще, но если потребуется больший уровень вложености, то нет смыска клепать кучу таблиц

YurikGL » 20 май 2006, 17:37

1) http://www.ibase.ru/develop.htm#tree - дофига статей по деревьям...

2)
Республика Беларусь
- Минская область
- - г. Минск
- - - 5 магазинов
- - г. Заславль
- - - 15 магазинов
Не проще создать 4 таблицы. В первой хранятся республики, во второй - области, в третьей - города, в четвертой магазины?

Naeel Maqsudov » 18 май 2006, 09:20

Не знаю, верно ли делаю, но обычно, для хранения подчиненных данных (оно же, деревьев), использую просто ссылку на родителя.
при выборке - фильтруем по полю parent, сначала по пустому (ну или можно -1 задать на некоторых базах)
потом пробегаем по сету и для каждого элемента делаем выборку по parent=id родителя и т.д. пока
выборка не будет пустая
Если БД - Oracle to все дерево выбирается за 1 раз одним select-ом.
см. конструкции CONNECT и START WITH

LAngel » 12 май 2006, 13:38

зачем же перестраивать...
в каждой ноде есть Data - так и пихать туда всю необходимую инфу.

Игорь Акопян » 12 май 2006, 11:30

Лелик,
А енсли нода уже существует?
имеется ввиду, что дерево построено, а что-то добавили?
Как вариант, при вставке можно тупо перестроить дерево...

Blood_Magic » 11 май 2006, 16:02

vunder
а по моему ничем не отличается

vunder » 11 май 2006, 11:55

Если уже есть, то здесь по-сложнее. Придется делать лишние проверки и поиски родителя - а это время. Так что при существующем списке быстро сделать не получится. Основная проблема - перебор нодов.
Так делатьнеправильно
for i := 0 to Tree.Items.Count-1 do
if Tree.Items='ddfdf' then

Лучше так (и намного быстрее)
Noddy := MyTreeView.Items[0];
Searching := true;
while (Searching) and (Noddy <> nil) do
begin
if Noddy.text = SearchTarget then
begin
Searching := False;
MyTreeView.Selected := Noddy;
MyTreeView.SetFocus;
end
else
begin
Noddy := Noddy.GetNext
end;
end;

Вернуться к началу