![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
БД + дерево [D7]
db_noob © (2006-07-19 21:16:00)Есть некое дерево (уровней порядка 3-4, но это не особо важно), которое желательно хранить в БД и при загрузке ПО подгружать в TreeView-компонент.
Прошу совета: Как лучше хранить дерево? Как лучше его грузить? Какой TreeView лучше при этом использовать?
Гланый критерий оценки: скорость работы сей конструкции.
з.ы. на данный момент решил хранить в след. виде (таблица)
| Имя ветки | ID | ParentID |
Самый простой вариант )
ORMADA (2006-07-20 12:05:00) [1]а мне DbTreeFilter http://www.miross.ru/dbt/нравиться
нормальная быстрая им простая вещь.. думаю аналогичная той что Ega23 написал или TVirtualDBTree
Reindeer Moss Eater (2006-07-20 12:02:00) [2]"Все уже украдено до нас"
TVirtualDBTree
SergP. (2006-07-20 11:48:00) [3]> Какой TreeView лучше при этом использовать?
Можно обычный использовать.
Только не создавать там сразу все дерево, а досоздавать узлы по мере необходимости...
Т.е. создаешь узлы верхнего уровня, и у каждого такого узла создаешь по одному "левому" дочернему узлу, а в OnExpanding проверяешь наличие этих "левых" узлов. Удаляешь их и создаешь нужные узлы.
Desdechado (2006-07-20 11:38:00) [4]Замыкание дерева на одну таблицу - самый популярный путь. Но есть и другие пути. Встречал статьи по этому поводу. Думаю, стоит поискать в инете по словам.
Способ лучше выбирать, исходя из задач, а не из "что знаю" или "что чаще используют другие".
Ega23 (2006-07-20 10:05:00) [5]ID, int, primary key
ParID, int, null, foreign key on (ID)
aName varchar(сколько_надо)
........
Компонент... Я свой писал. TDBTreeView.
PSPF2003 (2006-07-20 08:01:00) [6]Есть на Delphi World примерчик.
В книге Фленова D2005.
Ищи в поискавиках "Древовидные структуры в базах данных "
PSPF2003 (2006-07-20 07:59:00) [7]Есть на Delphi World примерчик.
В книге Фленова D2005.
Ищи в поискавиках "Древовидные структуры в базах данных "
palva (2006-07-19 21:47:00) [8]Еще надо поле индекса добавить, чтобы сохранить порядок узлов. Конечно, это будет не тот индекс, который в TreeView, а тот по которому ORDER BY