Больших преимуществ использования такой структуры я не
вижу, недостаток же налицо – при изменении максимального количества потомков
одного узла придется добавлять еще один столбец таблицы, что крайне неудобно.
По этой причине подробно рассматривать эту структуру мы не станем, а перейдем к
следующему случаю – иерархии с конечным числом уровней вложенности и
бесконечным числом потомков узла.
Одним из вариантов хранения таких иерархий является
поуровневое хранение в различных таблицах. Например, таблица CATALOG_LEVEL_1
хранит все элементы первого уровня вложенности, таблица CATALOG_LEVEL_2 –
второго, и т.д. Ниже приведено описание такой структуры для случая
трехуровневой иерархии.
CREATE TABLE "CATALOG3_LEVEL1" (
"ID" INTEGER NOT NULL
PRIMARY KEY,
"NAME" VARCHAR(200)
CHARACTER SET WIN1251 NOT NULL
);
CREATE TABLE "CATALOG3_LEVEL2" (
"ID" INTEGER NOT NULL
UNIQUE,
"NAME" VARCHAR(200)
CHARACTER SET WIN1251 NOT NULL,
"PARENT_ID" INTEGER
NOT NULL REFERENCES "CATALOG3_LEVEL1"("ID"),
PRIMARY
KEY("ID","PARENT_ID")
);
CREATE TABLE "CATALOG3_LEVEL3" (
"ID" INTEGER NOT NULL
UNIQUE,
"NAME" VARCHAR(200)
CHARACTER SET WIN1251 NOT NULL,
"PARENT_ID" INTEGER
NOT NULL REFERENCES "CATALOG3_LEVEL1"("ID"),
"PARENT_ID2" INTEGER
NOT NULL REFERENCES "CATALOG3_LEVEL2"("ID"),
Рекомендуем скачать другие рефераты по теме: сочинение евгений онегин, реферат на тему пушкин.