Ограничения изменения моделей данных

При проектировании модели данных класса, а именно при изменении его атрибутивного состава, следует учитывать следующие рекомендации:

  1. Добавлять в класс объекта новые атрибуты любых типов можно на любом этапе эксплуатации Системы на базе Платформы.

  2. Удалять (отвязывать) атрибуты от класса объекта можно на любом этапе эксплуатации Системы на базе Платформы.

Исторические данные с удаленным атрибутом сохранятся в неизменном виде на слое данных Платформы до первого изменения объекта, но получение значения этого атрибута в составе объекта будет невозможно.

Рекомендуется провести ревизию использования удаленного атрибута в проектном решении, например, использование атрибута в источниках данных, формах, ключей уникальности, политиках доступа и т.д.

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

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

  • Свойства, не влияющие на отображение данных или логику HTTP-запросов, можно изменять в любое время:

  • Влияют только на отображение данных:

    • Наименование – name.

    • Описание – description.

    • Порядок – ordinal.

    • Скрытие поля – isHidden.

  • Влияют только на создание новых объектов:

    • Значение по умолчанию – defaultValue.

    • Выполнять проверку значения на соответствие формату атрибута – validationExpression.

    • Обязательность – isRequired.

  • Свойства, влияющие на логику HTTP-запросов, изменять допускается при условии контроля целостности бизнес-логики приложения на Платформе.

Рекомендуется провести ревизию использования измененного атрибута в проектном решении, например, использование атрибута в источниках данных, формах, ключей уникальности, политиках доступа и т.д.

  • Сортируемость – isOrderable – влияет на возможность сортировать по данному атрибуту в HTTP-запросах.

  • Использование для поиска – isSearchable – влияет на возможность производить фильтрацию и поиск по данному атрибуту.

  • Персональные данные – isPrivate – влияет на функционал массовых операций с персональными данными.

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

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

  • Код атрибута – code – является уникальным идентификатором атрибута.

  • Тип данных – type – тип данных атрибута влияет на способ хранения и работы с ним.

  • Режим ввода – cardinality – управляет кардинальностью (возможностью множественных значений в одном атрибуте), влияет на способ хранения и работы с ним.