Простейшая иерархия
В качестве примера, возьмем часть схемы подразделений на предприятии:
A1 | ||
B1 | B2 | |
C1 | C2 | C3 |
где А1 - подразделение верхнего уровня (возможно, не единственное на этом уровне),
В1 и В2 - входят в А1,
С1 - входит в В1, С2 и С3 - входят в В2.
Можно легко создать таблицу, которая содержит информацию об этих подразделениях (здесь идалее - синтаксис MS SQL):
create table Departments ( Id int not null identity primary key, Parent int not null references Departments(Id), Name varchar(32) not null )
Поле Parent является ссылкой на Id (первичный ключ) вышестоящего уровня в иерархии. В данном случае оно указывает, в какое подразделение входит каждый отдел.
Departments | ||
Id | Parent | Name |
1 | 0 | A1 |
2 | 1 | B1 |
3 | 1 | B2 |
4 | 2 | C1 |
5 | 3 | C2 |
6 | 3 | C3 |