Глава 8: База знаний — древовидные таблицы
8.1 Добро пожаловать в новую главу
В этой главе мы подробно разберём, как построить базу знаний. Это будет комплексный модуль, помогающий управлять документами, задачами и информацией. Спроектировав и создав документную таблицу с древовидной структурой, мы реализуем эффективное управление статусом, вложениями и связанными задачами для документов.
8.2 Знакомство с проектированием БД
8.2.1 Базовое проектирование и со здание таблицы документов
Начнём с простого: создадим в базе знаний «Таблицу документов» для всех документов. Она будет содержать следующие ключевые поля:
- Заголовок (Title): название документа, тип «Однострочный текст».
- Содержимое (Content): подробное содержимое документа, тип «Многострочный текст» с поддержкой Markdown.
- Статус документа (Status): текущий статус документа: черновик, опубликован, в архиве, удалён.
- Вложение (Attachment): возможность добавлять файлы и изображения.
- Связанная задача (Related Task): поле отношения многие-к-одному, связывающее документ с конкретной задачей — удобно для ссылок на документы при управлении задачами.
По мере расширения функциональности мы будем постепенно добавлять и другие поля.
8.2.2 Построение древовидной структуры и управление каталогом
Древовидная таблица (предоставляется плагином древовидных таблиц) — это иерархическая структура, в которой у каждой записи может быть один или несколько потомков, а у тех — свои потомки.
Для упорядочивания документов и иерархии выберем для нашей таблицы тип Древовидная таблица — это даст удобную классификацию по принципу «родитель-потомок». При создании система автоматически добавит следующие поля:

- ID родительской записи: фиксирует родительский документ.
- Родительская запись: поле многие-к-одному, реализующее связь «родитель-потомок».
- Дочерние записи: поле один-ко-многим, позволяющее видеть все вложенные документы.

Эти поля поддерживают иерархию каталога, поэтому изменять их не рекомендуется.
Также создадим связь с таблицей задач (многие-к-одному) и обратное отношение, чтобы при н еобходимости в окне связанных данных задачи можно было создавать список документов.
8.3 Создание страницы управления документами
8.3.1 Создание меню «Управление документами»
В главном меню добавьте новую страницу — «Управление документами», выберите подходящий значок. Затем создайте табличный блок для нашей таблицы документов. В табличном блоке добавьте базовые операции CRUD и введите несколько тестовых записей, чтобы проверить корректность работы таблицы.

Упражнение
- На странице управления документами добавьте родительский документ «Документ 1».
- Создайте у «Документ 1» дочерний документ «Глава первая».

