Mark Danniel Ответов: 1

Как представить дерево, по мнению некоторых реляционных таблиц, которые использует элемент управления "дерево" МФЦ


Я хочу использовать некоторые реляционные таблицы, полученные из базы данных (MySQL).Эти таблицы содержат реляционные данные ; например: разрешение таблицы включает в себя структуру данных "DepartmentID", а также таблицу Department.
Дерево выглядит следующим образом: ("00" означает идентификатор корневого узла дерева,"01" "02" "03" "04" являются дочерним узлом "00".Они принадлежат к одному классу .Таким образом, "0101" является дочерним узлом "01" ;"010101" является дочерним узлом "0101" ; "01010101" является дочерним узлом "010101" ......)
"00" CompanyName
"01" Department1_Name
"0101" Department1_Sub1_Name
"010101" Department1_Sub1_Sub1_Name
"01010101" Department1_Sub1_Sub1_Sub1_Name
"02" Department2_Name
"0201" Department2_Sub1_Name
"020101" Department2_Sub1_Sub1_Name
"020102" Department2_Sub1_Sub2_Name

"03" Department3_Name
"0301" Department3_Sub1_Name
"0302" Department3_Sub2_Name
"04" Department4_Name

Что я уже пробовал:

Во-первых,сохранение таблиц из базы данных(MySQL).в настоящее время я использую карту и векторный формат для сохранения данных.

Во-вторых, представление отношения узлов в соответствии с реляционными данными в этих таблицах(в настоящее время я использую способы представления "while" и "find", но производительность и скорость слишком плохи из-за большого объема данных)

В-третьих, я использую элемент управления MFC Tree для представления дерева отношений в соответствии с этими узлами (теперь я использую ретривальные пути из всех узлов, а затем вставляю узел в дерево .Конечно медленно скорость)

1 Ответов

Рейтинг:
8

Richard MacCutchan

Производительность, как правило, находится в обратной зависимости от объема данных. Таким образом, если вы извлекаете все данные из базы данных и строите из них древовидный элемент управления, то производительность, скорее всего, будет медленной. Сначала вы должны извлечь только узлы верхнего уровня и отобразить их в TreeControl. Затем, когда пользователь нажимает на узел, чтобы развернуть его, вы извлекаете соответствующие данные и снова отображаете только эти элементы.