Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

Вернемся к отмеченным выше недостаткам данной структуры (сложность формирования полного пути и вычисления уровня элемента). Эти недостатки вытекают из того простого факта, что в данной структуре информация о полном пути и уровне нигде не хранится. Решить проблему быстрого получения уровня вложенности можно введением в структуру таблицы дополнительного поля Level. Описание таблицы тогда будет выглядеть так:

CREATE TABLE "CATALOG" (

 "ID" INTEGER NOT NULL PRIMARY KEY,

 "NAME" VARCHAR(200) CHARACTER SET WIN1251 NOT NULL,

 "PARENT_ID" INTEGER

 CHECK(

   "PARENT_ID" = ANY(SELECT "ID" FROM "CATALOG") or "PARENT_ID" is NULL

 ),

 "LEVEL" INTEGER DEFAULT 1 NOT NULL

);

Структура для хранения иерархии с неограниченным числом уровней вложенности и потомков готова.

Следующей по степени универсальности является иерархия с неограниченным числом уровней вложенности и конечным числом потомков элемента иерархии. Ограничение количества потомков позволяет хранить данные в следующем виде.

Ссылка на предка

Информация о первом элементе уровня иерархии

Информация о втором элементе уровня иерархии

Информация о n-ном элементе уровня иерархии, где n – количество максимальное количество потомков

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

В нашем примере мы ограничим количество предков числом 5, тогда SQL-описание таблицы будет выглядеть следующим образом:

CREATE TABLE "CATALOG2" (

 "LEVEL" INTEGER NOT NULL,

 "OFFSET" SMALLINT NOT NULL CHECK("OFFSET" > 0 and "OFFSET" < 6),

 "NAME_1" VARCHAR(200) CHARACTER SET WIN1251,


Рекомендуем скачать другие рефераты по теме: сочинение евгений онегин, реферат на тему пушкин.


Категории:




Предыдущая страница реферата | 1  2  3  4  5  6  7  8  9  10 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я