деревья и таблицы в DB2 - PullRequest
       23

деревья и таблицы в DB2

0 голосов
/ 17 марта 2011

Мне нужна ваша помощь по поводу этого графа, который у меня есть. Я хотел бы найти способ, как написать скрипт для создания таблицы с именем COMPS для представления этой древовидной структуры компонента / субкомпонента, в качестве списка ребер для графа.Я могу использовать эти имена для столбцов таблицы COMPONENT, SUBCOMPONENT, SUBCOMPCOUNT.Есть идеи?

Компоненты типа b встречаются более чем в одном месте в структуре компонента a.Но структура компонента b одинакова, независимо от его положения. Компонент d также встречается в разных местах, но все объекты типа d относятся к объектам одного типа enter image description here

1 Ответ

0 голосов
/ 12 августа 2013

Вы должны создать таблицу, как вы говорите, чтобы сохранить структуру

create table graph (
ID int not null,
COMPONENT char(2) not null,
ParentComponent int)

Создать первичный ключ для столбца ID.И внешний ключ для parentComponent, ссылающийся на ту же таблицу со столбцом ID.

Затем можно создать набор UDF и хранимую процедуру для получения значений или для печати древовидной структуры.Например, UDF для

  • Извлечение корневого узла
  • Количество узлов в дереве
  • Количество сыновей данного узла
  • Родительский идентификатор данного узла.

И Хранимые процедуры для

  • Возвращает таблицу со строками, упорядоченными по определенному обходу дерева (сначала в ширину, в глубину)

Вы можете даже создать проверочные ограничения, чтобы предоставить правила для создания графика.Например, корневым узлом является 0, никто другой не может иметь этот идентификатор, а это самое низкое значение.

Какие операции необходимо выполнить на графике?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...