Перейти к основному содержимому
Версия: 1.21.3

Расширение модели данных

Вы можете расширить "коробочную" модель данных SimpleOne созданием колонок в существующих таблицах. Помните, что обновленная модель данных будет применяться ко всем существующим дочерним таблицам, так как они унаследуют созданные колонки. Если вам нужно расширить модель данных без создания колонок, используйте следующие способы:

  • Наследование
  • Добавление моделей с REM-атрибутами

Наследование


Наследование – это расширение таблиц с помощью дочерних структур данных, которые наследуют все атрибуты родительской структуры и имеют свои собственные. Наследование позволяет отказаться от большого количества дублирующихся колонок и выстроить иерархическую структуру объектов, в которой каждый следующий дочерний элемент представляет собой более узкое подмножество элементов. Наследование может быть многоуровневым – дочерняя таблица может в свою очередь быть родительской для других таблиц.

При использовании наследования учитывайте, что многие механизмы могут срабатывать в рамках дочерних сущностей. Например, бизнес-правила, роли пользователей, клиентские скрипты и другое.

Наследуемые значения и связанная с таблицей логика могут переопределяться на уровне дочерних таблиц.

Механизм наследования корректно работает при небольшом количестве дочерних таблиц и множестве общих атрибутов между ними. При увеличении числа дочерних таблиц и уменьшении числа общих атрибутов, становится сложнее управлять такой моделью данных. Недостатки модели данных со сложной структурой наследования:

  • Для хранения записей требуется больше места.
  • Снижается скорость выполнения скриптов.
  • Становится сложнее настраивать функции, связанные с определенной таблицей, такие как импорт данных, настройка форм представления и другое.

Примером сложной модели данных является каталог запросов по шаблонам. Родительская таблица – это каталог, она содержит записи каждого шаблона. Каждый отдельный шаблон – это дочерняя таблица, которая содержи записи обращений, созданных по нему.

Расширенная модель записи


При использовании расширенной модели записи (REM) не создаются новые таблицы и колонки, а создаются атрибуты данных, выборочно применяемые к определенным записям таблицы. При применении расширенной модели к записи, для нее создается вспомогательный набор записей, в котором хранится информация о значениях конкретных атрибутов. Таким образом у записи есть атрибуты, полученные от таблицы и, дополнительно, атрибуты, получаемые из расширенной модели (REM-атрибуты).

Благодаря REM-атрибутам можно обойти ограничения механизма наследования, добавляя к записям атрибуты, которые не будут наследоваться дочерними таблицами. Без REM-атрибутов пришлось бы создавать большое количество уровней наследования, на которых родитель отличается от потомка наличием всего одного поля. Кроме того, REM-атрибуты могут объединяться в REM-модели, позволяющие осуществлять категоризацию объектов из одной таблицы. Примером такого использования является каталог услуг с расширенной моделью записи.