В моей работе были применены вложенные рекурсивные иерархические данные для отображения предметов, тем и вопросов хранящихся в базе данных. Это означает, что базовые и подчинённые данные хранятся в одной таблице «Data». С помощью компонента TTreeView удобно организовано представление в виде иерархического дерева, что соответствует логике решаемой задачи. Таблица реляционного типа отображает наши данные в виде иерархии. В таблице первое поле ключевое, в нём название тем-родителей: «Механика», «Кинематика», «Кинематика материальной точки», «Физика», «Зачет по механике». Второе поле является подчиненным для первого: раздел «Кинематика материальной точки» содержит Вопрос 1-4.
| Key_Id | Key_Parent | Поле строкового типа | |||
| 0 | 15 | Механика | |||
| 2 | 0 | Кинематика | |||
| 3 | 0 | Динамика | |||
| 23 | 2 | Кинематика материальной точки | |||
| 24 | 23 | Вопрос 1 | |||
| 26 | 23 | Вопрос 2 | |||
| 27 | 23 | Вопрос 3 | |||
| 28 | 23 | Вопрос 4 | |||
| 30 | 30 | Физика | |||
| 31 | 30 | Зачёт по механике | |||
| 32 | 31 | Вопрос 1 | |||
| 33 | 31 | Вопрос 2 | |||
| 34 | 31 | Вопрос 3 | |||
| 35 | 31 | Вопрос 4 | |||
| 36 | 31 | Вопрос 5 | |||
| 37 | 31 | Вопрос 6 |
На основе таблицы строится иерархия такого типа.
![]() |
Также база данных содержит следующие таблицы:
Таблица «Факультет» содержит поле название факультета.
| Название | |
| ФИЯ | |
| ФМИ |
Таблица «Группа» содержит поле номер группы.
| Номер | |
| 455 | |
| 465 | |
| 475 | |
| 485 |
Таблица «Статистика» содержит данные о прохождении теста.
| № п/п | Название темы | Дата | Оценка | ||||
| 1 | Кинематика материальной точки | 27.03.99 | 4 | ||||
| 2 | Электродинамика | 12.05.99 | 3 | ||||
| 3 | Механика | 13.05.99 | 2 |
Таблица «Данные студента» - при регистрации данные заносятся в эту таблицу.
| № п/п | Фамилия | Группа | Факультет | ||||
| 1 | Иванов | 455 | ФМИ | ||||
| 2 | Петров | 485 | ФИЯ | ||||
| 3 | Ельцин | 465 | ФМИ |