Расширенная модель записи
Расширенная модель записи (REM) позволяет дополнить набор полей таблицы. Табличная структура REM повторяет структуру справочников с таблицами и колонками. Вместо колонок в REM используются атрибуты. Вы можете связать атрибуты REM с таблицей с помощью Модели (sys_re_model). Кроме того, вы можете создать коллекции атрибутов − универсальные наборы атрибутов, которые могут быть использованы в нескольких моделях одновременно.
Вы можете просмотреть справочники связанные с REM через категорию меню Расширенная модель записи.
Концепция REM
Каждая таблица имее т свою собственную модель данных, заданную бизнес-логикой. Модель данных представлена набором колонок. Эта модель данных может быть расширена с помощью дочерних таблиц с теми же атрибутами, что и у родительской таблицы, и, в дополнение, своими собственными атрибутами, недоступными родительской. Например, диаграмма ниже показывает, что все атрибуты таблицы Пользователи унаследованы таблицей Сотрудники.
В случае, если дочерних таблиц немного и большая часть колонок совпадает, модель данных будет работать нормально. Но когда количество дочерних таблиц увеличивается, а количество совпадающих колонок уменьшается, управлять такой моделью становится сложнее. Модель данных с большой и сложной структурой наследования таблиц имеет следующие недостатки:
- Требуется больше места для хранения записей.
- Скрипты начинают выполняться медленнее.
- Проблемы с настройкой функциональности определенной таблицы становится сложнее. Например, импорт данных, настройки макетов и другое.
Каталог запросов по шаблонам можно рассмотреть как один из примеров таких таблиц. Есть родительская таблица для каталога и запись таблицы для каждого шаблона запроса с определенными атрибутами.
Для решения этой проблемы и была создана концепция Расширенной модели записи (REM).
Когда к определенной записи применяется расширенная модель, для нее создается обязательный набор записей, содержащих информацию об определенных значениях атрибутов. Таким образом, запись имеет колонки, унаследованные от таблицы и еще атрибуты из расширенной модели.
Настройка расширенных моделей
Для настройки расширенной модели вам нужно:
- Создать расширенную модель.
- Создать атрибуты и включить их в модель.
- (опционально) Настроить коллекцию атрибутов.
- (опционально) Настроить клиентский скрипт расширенной модели записи.
На диаграмме ниже вы можете увидеть разницу между моделями и коллекциями. Модели создаются с определенным набором атрибутов, которые используются только в этой модели. Коллекции содержат атрибуты, которые могут применяться к разным моделям.
Не рекомендуется создавать коллекции с большим количеством атрибутов. Эффективнее будет создать несколько коллекций, в каждой из которых будет один атрибут. Такой подход обеспечит гибкость в настройке моделей.
Создание модели
Для создания модели выполните следующие шаги:
- Перейдите в Расширенная модель записи → Модели.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти.
Поля формы Модель
Поле | Обязательно | Описание |
---|---|---|
Заголовок | Да | Укажите заголовок модели. Можно задать его на любом языке. |
Таблица | Да | Дайте ссылку на таблицу, которая будет затронута моделью. После сохранения формы поле Таблица становится доступным только для чтения. |
Описание | Нет | Введите описание модели. |
Сценарий после вставки | Нет | Введите скрипт, который должен выполняться после создания записи. Для разработки скрипта можно использовать методы SimpleRecord Server-Side. |
Активно | Нет | Установите флажок, чтобы сделать модель активной. |
Иконка | Нет | Загрузите изображение для идентификации модели. |
Связанные списки:
- Атрибуты – cписок атрибутов, связанных с расширенной моделью.
- Элементы формы модели – cписок элементов формы, связанных с расширенной моделью записи.
- Используемые коллекции – cвязанные с моделью коллекции атрибутов.
- Клиентские скрипты модели – cписок клиентских скриптов, связанных с моделью.
- Не создавайте и не добавляйте атрибуты в модель c таким же наименованием, как у существующего атрибута, связанного с этой моделью.
- Не переименовывайте уже созданные атрибуты таким образом, чтобы новое наименование совпадало с уже существующим атрибутом, связанным с этой моделью.
Настройка атрибутов
В SimpleOne вы можете создавать соотношение атрибутов для моделей и коллекций. Соотношение данных — это процесс соединения поля данных из одной таблицы с полем данных в другой таблице. Это снижает вероятность ошибок, помогает стандартизировать ваши данные и упрощает их понимание, поскольку устанавливает прямые связи между вашими данными в нескольких таблицах одновременно.
Чтобы создать атрибут, выполните следующие шаги:
- Перейдите в Расширенная модель записи → Атрибуты.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти.
Поля формы Атрибуты
- Общее
- Параметры типа
- Значение по умолчанию
- Определитель ссылок
Поле | Обязательно | Описание |
---|---|---|
Контейнер | Да | Укажите ранее созданную модель. |
Тип атрибута | Да | Укажите тип атрибута. |
Заголовок | Да | Укажите заголовок атрибута. Вы можете использовать латиницу, кириллицу, цифры от 0 до 9, пробел и символ нижнего подчеркивания ( _ ). Заголовок атрибута может быть локализован. |
Наименование атрибута | Да | Системное наименование атрибута. Поле заполняется автоматически заголовком, используются только латинские буквы, цифры от 0 до 9 и символ ( _ ). После сохранения записи поле доступно только для чтения. |
Связать с колонкой | Нет | Укажите колонку целевой таблицы для связи значения атрибута до создания записи (в том числе до срабатывания бизнес-правила типа до). Для выбора доступны колонки таблицы, указанной в связанной модели или ее дочерних таблиц. Если целевая колонка является обязательной, значение будет сохранено до того, как оно будет обработано на стороне сервера. Также, обязательную целевую колонку не нужно добавлять на форму записи, иначе механизм проверки с клиентской стороны может помешать сохранению записи. Связывание значения атрибута через поле Связать с колонкой доступно только если тип атрибута совпадает с типом целевой колонки. Следующее сообщение появится, если в целевой таблице нет колонки: Атрибут "{attribute_name}" не может быть записан в колонку, т.к. она отсутствует в таблице |
Комментарии | Нет | Напишите комментарий, описывающий атрибут. |
Активно | Нет | Установите флажок, чтобы сделать атрибут активным. |
Только для чтения | Нет | Установите флажок, чтобы сделать добавленное с помощью этого атрибута поле доступным только для чтения. |
Обязательно | Нет | Установите флажок, чтобы сделать добавленное с помощью этого атрибута поле обязательным для заполнения. |
Поле | Обязательно | Описание |
---|---|---|
Зависит от поля | Да | Укажите колонку Таблицы типа Reference, которая ссылается на справочник Таблицы и имеет системное имя table_id. Поле появляется, когда выбран один из типов атрибутов:
|
Максимальная длина | Нет | Укажите максимальную длину значения для колонки. Поле появляется, когда выбран один из следующих типов атрибута:
|
Таблица с опциями | Нет | Укажите таблицу, в которой хранятся опции выбора. Поле появляется, когда выбран тип атрибута Choice. Максимальная длина не может превышать разрешенную длину указанного типа атрибута. |
Опции из поля | Да | Укажите колонку Таблицы с опциями, которая содержит опции выбора. Поле появляется, когда заполнено значение в Таблица с опциями. |
Тип списка | Да | Выберите тип списка опций:
|
Дополнительные атрибуты | Нет | Укажите дополнительные настройки для поля. Например, введите следующий текст для того, чтобы применить стиль радиокнопок к полю опций:choice_decorator=radio Поле появляется, когда выбран один из следующих типов атрибутов:
|
Ссылка | Да | Укажите таблицу со значениями, которые вам необходимы. Поле появится после того, как в поле Тип атрибута будет выбрано значение List или Reference. |
При удалении | Нет | Выберите действие, которое будет выполняться при удалении записи, на которую есть ссылка. Доступные варианты выбора:
|
Удаление записи А приведет к ошибке обновления ссылаемой на нее записи Б, если колонка, которая ссылается на запись А, является обязательной, а действие при удалении установлено Присвоить NULL.
Невозможно обновить запись {link}, так как она ссылается на удаленную запись
Поле | Обязательно | Описание |
---|---|---|
Значение по умолчанию | Да/Нет | Укажите значение по умолчанию, которым будет предзаполнено поле при создании записи. Поле обязательно для заполнения, когда тип списка выбора Выпадающий список без опции –Нет—(укажите значение по умолчанию). |
Динамическое значение по умолчанию | Нет | Установите флажок, если хотите, чтобы значение по умолчанию генерировалось динамически. |
Динамическое значение по умолчанию | Да | Поле появляется, когда выбран флажок Динамическое значение по умолчанию. Выберите скрипт из справочника Динамические значения по умолчанию (sys_default_value_dynamic), чтобы результаты его выполнения были автоматически высчитаны и внесены в это поле. Это значение будет значением по умолчанию для указанной колонки.
|
Поле | Обязательно | Описание |
---|---|---|
Тип определителя ссылок | Нет | Укажите тип определителя ссылок: **
|
Условия определителя ссылок | Нет | Настройте фильтры, используя конструктор условий. Поле появляется, когда выбран Простой тип определителя ссылок. |
Динамический определитель ссылок | Нет | Выберите динамический определитель ссылок из списка. Поле появляется, когда выбран Динамический тип определителя ссылок. |
Зафиксировать определитель | Нет | Установите флажок, чтобы зафиксировать фильтр в навигационной цепочке. Эта функция блокирует использование конструктора условий. Поле появляется, когда выбран один из следующих типов атрибута:
|