Интерфейс управления ORM

Основной интерфейс
Синхронизация структуры базы данных
Предварительный просмотр данных
Резервные копии
Создание и редактирование объектов ORM
- Конфигурация
- Индексы
- Поля
Дополнительные элементы интерфейса
Словари
Подключения к базам данных
Импорт объектов

Интерфейс управления ORM

Предоставляет возможность управления объектами системы.

Объекты ORM самостоятельно производят валидацию вводимых данных, так же валидируют структуру связей объектов.

Основной интерфейс

Основной интерфейс представляет информацию о существующих объектах системы:

  • Title (Заголовок) - заголовок объекта;
  • Object (Объект) - имя объекта;
  • Data table (Таблица) - имя таблицы в базе данных;
  • DB Engine (Тип хранилища) - тип хранилища базы данных;
  • Properties (Свойства) - количество свойств объекта;
  • Db Status (Статус хранилища):
    • Recodrs (Записи) - количество записей в базе данных;
    • Data size (Размер данных);
    • Index size (Размер индексов);
    • Space usage (Использование пространства);
  • Version control (Версионный контроль) - находится ли объект под версионным контролем;
  • Valid DB (Валидность) - соответствует ли база данных структуре объекта;
  • Is System (Системный) - является ли объект системным.

Отредактировать объект можно, либо кликнув два раза на строчку в таблице объектов, либо нажав на иконку , удалить объект можно нажав на иконку .

Будьте внимательны, при удалении объекта также будет удалена соответствующая таблица из базы данных.

Синхронизация структуры базы данных

Кнопка с иконкой   в каждой строке предназначена для перестроения структуры таблицы базы данных, если она не валидна. Так же в верхнем меню есть кнопка Build all (Перестроить Все).

Предварительный просмотр данных

Кнопка с иконкой  в каждой строке предназначена для предварительного просмотра и редактирования данных БД без создания специализированного визуального интерфейса. Открывает подобный интерфейс:

Резервные копии

Для создания резервной копии данных ORM достаточно нажать на кнопке . По умолчанию копии создаются архивом zip, но если на Вашем сервере не установлено соответствующее расширение, то копия будет сохранена в папку обычным копированием. Восстановление доступно из обоих видов копий. В резервную копию включаются объекты системы, словари, sql dump базы данных.

Для восстановления ранее сохраненного состояния системы кликните на кнопке . Будет открыто окно с перечнем доступных копий. Выбрав нужную и нажав кнопку «Восстановить», Вы сможете уточнить восстанавливать ли сохраненный sql dump базы или только скопировать системные файлы.

Механизм создания резервных копий временно отключен в релизах 0.9.1 и 0.9.2  в связи с изменениями архитектры ORM (добавлена поддержка внешних таблиц), функция будет возвращена к релизу 0.9.3 - 0.9.4.

Создание и редактирование объектов ORM

Для создания объекта в интерфейсе ORM нажмите кнопку Add object (Добавить объект). Первое, что требуется - описать конфигурацию объекта:

Конфигурация

  • Version control (Версионный контроль) - флаг, определяющий будет ли использоваться версионный контроль документов, позволяющий после создания новой модификации документа переключаться между версиями документа, публиковать старые версии, модифицировать и создавать новые версии на основе старых (подробности работы с версионным контролем будут рассмотрены в другой главе);
  • History log (История изменений) - флаг, определяющий будет ли производиться логирование действий с объектом;
  • Object name (Имя объекта) - возможно использование alpanum (латинского алфавита) и знака «_»;
  • Title (Заголовок) - имя объекта для отображения в пользовательских интерфейсах;
  • Table name (Имя таблицы) - имя таблицы базы данных (системный префикс будет добавлен автоматически);
  • Table engine (Тип хранилища) - тип хранилища базы данных (при использовании InnoDb ORM будет использовать транзакции во время манипуляций с объектами);

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

  • Field used as title for link – поле, используемое как заголовок при отображении ссылок на этот объект;
  • Database Connection (подключение к БД) - выбор подключения к базе данных;
  • Primary Key (Первичный ключ) - Первичный ключ таблицы базы данных;
  • Use DB Table Prefix (использовать префикс БД) - использовать префикс в имени таблиц; влияет на ввод имени таблицы, позволяет использовать разные префиксы для разных установок приложения, повышает безопасность приложения; если не стоит галочка, то имя таблицы необходимо вводить prefix_tablename, иначе просто  tablename;
  • Read Only (только чтение) - запрещает ORM вносить изменения в таблицу базы данных;
  • Lock Table Structure (запретить изменение структуры) - запрещает ORM  изменять структуру таблицы базы данных, но позволяет чтение и запись данных.

После благополучного сохранения объекта станут доступны дополнительные вкладки, такие как Fields (Поля) и Indexes (Индексы).

Индексы

На вкладке «Индексы» мы видим информацию по существующим индексам.

Пользовательские индексы могут быть отредактированы нажатием на иконку  или удалены нажатием на иконку .

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

Добавление индексов полей происходит по нажатию на кнопку Add index (Добавить индекс). При этом появляется окно:

  • Name (Имя) – имя индекса;
  • Columns (Колонки) – поле с кнопкой справа, с помощью которой открывается список всех имеющихся полей редактируемого объекта, из которых можно выбрать несколько полей для индексирования;
  • Unique (Уникальность) – уникальный индекс;
  • Fulltext (Полнотекстовый) – Fulltext индекс.

Поля

На вкладке Поля мы видим информацию по существующим полям.

Пользовательские поля могут быть отредактированы нажатием на иконку или удалены нажатием на иконку .

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

Каждый объект содержит системное поле ID - unsigned integer autoincrement (Идентификатор объекта).

Объекты с ревизионным контролем содержат дополнительные системные поля:

  • author_id - идентификатор пользователя, создавшего запись;
  • date_created - дата создания записи;
  • date_published - дата публикации записи;
  • editor_id - идентификатор пользователя, который редактировал документ последним;
  • published - опубликован ли документ;
  • published_version - версия опубликованного документа.

Поле Type (Тип) отображает тип поля объекта, в нем могут быть как обычные типы такие как (int, char и т.д.), так и типы link (указывает, на какой объект ссылается поле) и dictionary link (указывает, на какой словарь ссылается поле). Так же по нажатию на dictionary link откроется окно редактирования словаря, на который ссылается это поле.

Добавление полей происходит по нажатию на кнопку Add field (Добавить поле). При этом появляется окно:

Общие поля:

  • Field name - имя поля (alphanum + _) в базе данных;
  • Field title - имя поля в интерфейсе;
  • Unique Group - имя группы уникальных полей (уникальный индекс ORM может быть как для одного, так и для нескольких полей, просто указываем одну группу при необходимости).

В зависимости от выбора Field Type (Типа поля) станут доступны следующие поля:

- Standart field - стандартные поля баз данных, исходя из выбора типа поля, становятся доступны дополнительные настройки:

  • int, bigint, bit, tinyint, smallint, mediumint:
    • Validator;
    • Default;
    • unsigned;
    • Required;
    • IsNull;
  • datetime, date, timestamp, time:
    • IsNull;
    • Validator;
    • Required;
  • boolean:
    • Default;
    • IsNull;
  • char, varchar:
    • Validator;
    • DB length;
    • Default;
    • Allow HTML;
    • isSearch;
    • Required;
    • IsNull;
  • tinytext, text, mediumtext, longtext:
    • Validator;
    • Allow HTML;
    • isSearch;
    • Required;
    • IsNull;
  • float, double, decimal:
    • Validator;
    • scale;
    • precision;
    • Default;
    • unsigned;
    • Required;
    • IsNull.

- Link - ссылка, может быть ссылкой на объект, мультиссылкой на объект, ссылкой на словарное значение (некий список, определяется так же в разделе ORM), для ссылок также доступно свойство обязательности.

Обозначения настроек:

  • IsNull (Допустим NULL) - может ли значение поля принимать значение null;
  • Required (Обязательность) - поле обязательно для заполнения;
  • isSearch (Поисковое) - поле может быть использовано для поиска вхождения строки;
  • Allow HTML (Разрешать HTML) - поле позволяет хранить html-код;
  • scale () - длина текстового представления (количество символов);
  • precision () - количество символов дробной части;
  • unsigned () - беззнаковое;
  • Validator (Валидатор) - можно выбрать валидатор, с помощью которого будут проверяться сохраняемые данные в поле, в случае провала проверки сохранение не будет произведено, так же вы можете написать собственные валидаторы (подробности создания позже);
  • Default (Значение по умолчанию);
  • DB length (Длина).

Дополнительные элементы интерфейса

  • ADd object (Добавить объект) - уже было рассмотрено выше;
  • Dictionaries (Словари) - словари, о них немного подробнее ниже;
  • Object Map (Карта объектов) - по нажатию на данную кнопку открывается окно с UML-диаграммой связей объектов системы;
  • Database connections (Подключения к БД) - настройка подключений к внешним базам данных;
  • Connect external Db table (Подключить внешнюю таблицу) - интерфейс подключения внешних таблиц;
  • Show log (Показать лог).

Словари

При нажатии на кнопку Dictionaries (Словари) открывается окно для  управления словарями системы:

Добавить словарь можно нажав на кнопку «Добавить», будет открыто окно для ввода имени словаря. Удалить словарь можно нажав на иконку .

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

Чтобы переименовать словарь выберите нужный из списка и нажмите кнопку «Переименовать».

Для просмотра и редактирования словаря выберите нужный, и в правой части окна загрузятся его значения. Кликнув один раз по ячейке, вы сможете изменить ее значение. Чтобы добавить дополнительную строку, нажмите на кнопку «Добавить» в правой части окна. Появится дополнительная строка, которую можно отредактировать вышеописанным способом.

Удалить запись словаря можно, нажав иконку .

В отличие от редактирования, удаление записей словаря происходит сразу после подтверждения удаления.

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

Подключения к базам данных

Интерфейс позволяет настраивать подключения к сторонним базам данных. Обратите внимание, что подключение необходимо настроить для каждого режима работы системы отдельно. Таким образом, подключение в разных режимах имеет общее наименование и разные настройки.

Импорт объектов

Интерфейс управления ORM позволяет осуществлять импорт объектов из сторонних баз дынных. При этом на стороне сервера создается только файл описания структуры объекта (мета информация), данные берутся из базы данных указанной в настройках подключения. Таким образом, легко подключить таблицы сторонних баз данных. Для того, чтобы исключить изменения в сторонней базе данных можно прибегнуть к настройкам объекта ORM readonly / lock table structure.