Перейти к основному содержимому

Создание модели данных

После создания проекта вы можете приступить к описанию модели данных. Вы описываете компоненты модели данных в файле DataModel.mdmodel в папке models. Модель данных определяет структуру базы данных разрабатываемого приложения и является объектной модель. Более подробная информация о модели данных и ее компонентах содержится в статье О модели данных.

При выборе файла DataModel.mdmodel открывается Редактор Модели данных, который имеет список разделов слева и рабочую область справа. Имена разделов соответствуют компонентам модели данных, а в рабочей области отображается содержимое выбранного раздела. Более подробная информация об интерфейсе Редактора Модели Данных содержится в статье Интерфейс Редактора Модели Данных.

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

Классы модели данных разрабатываемого проекта

Псевдоним класса классаИмя классаТип уникального идентификатораРодительский классНазначение класса
DocumentДокументGUIDне указываетсяОписывает сущность "документ" с обобщенными атрибутами
ContractДоговорне указываетсяДокументОписывает сущность "контракт" как одну из реализаций сущности "документ"
FileФайлGUIDне указываетсяОписывает физическое представление сущности "контракт"

Платформа поддерживает наследование классов, что позволяет дочернему классу иметь те же атрибуты, что и родительский класс. При этом дочерний класс может иметь дополнительные атрибуты. Обратите внимание, что слева в Редакторе Модели Данных классы Документ и Договор смещены друг относительно друга и отображаются в виде дерева.

До создания атрибутов класса Договор для описания статуса контракта в модели данных вам нужно создать перечисление и ввести его значения. Это перечисление вы будете использовать в качестве типа данных атрибута. Более подробная информация о создании перечисления содержится в статье Создание перечисления. На панели со списком разделов Редактора Модели Данных перейдите в раздел Перечисления, который находится ниже раздела Классы, и создайте перечисление со следующими параметрами:

  • Псевдоним: Status;
  • Имя: Статус;
  • Описание: Статус контракта.

Введите следующие значения этого перечисления:

  • APPROVING;
  • APPROVED;
  • DECLINED.
примечание

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

Теперь на панели со списком разделов Редактора Модели Данных перейдите в раздел Классы и в правой части Редактора Модели Данных добавьте атрибуты каждого из классов. Поскольку в этой модели данных используется наследование классов, сначала укажите атрибуты класса Документ, а затем укажите атрибуты класса Договор. Обратите внимание, что в списке атрибутов класса Договор уже присутствуют унаследованные атрибуты. Используйте данные следующих таблиц при создании атрибутов. После выбора типа данных атрибута, кроме атрибута Статус класса Договор, оставьте значения дополнительных параметров по умолчанию.

Атрибуты класса Документ

Имя атрибутаПсевдоним атрибутаТип данных
НазваниеNameString
Количество страницAmountInteger
Дата созданияCreationDateDateTime

Атрибуты класса Договор

Имя атрибутаПсевдоним атрибутаТип данных
СтоимостьPriceMoney
ПодрядчикContractorString
СтатусStatusenum с именем Статус

Атрибуты класса Файл

Имя атрибутаПсевдоним атрибутаТип данных
ИмяNameString
РазмерSizeInteger
ТокенTokenguid

Вы описали классы и их атрибуты. Теперь вам нужно связать логическую сущность "договор" и физическую сущность "файл" в файловом хранилище Платформы, следовательно вам нужно связать классы Договор и Файл. Более подробная информация о связывании классов содержится в статье Создание связи между классами. В разделе Классы выберите класс Документ, перейдите на вкладку Связи и создайте связь со следующими параметрами:

  • Имя: Contract_to_File;
  • Тип: выберите 1:1 исходя из предположения, что каждому договору может соответствовать один файл;
  • Сделать связь необязательной: установите флажок;
  • Целевой класс: Файл.

Оставьте значения остальных параметров по умолчанию.

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

После закрытия окна Связь на вкладке Связи отображаются параметры созданной связи. На вкладке Атрибуты отображается дополнительный атрибут FK File.FileId, созданный согласно этой связи.

Следующий рисунок демонстрирует Редактор Модели Данных с созданной моделью данных.

TG_data_model.png
Модель данных разрабатываемого приложения

Опубликуйте проект так же, как вы делали на предыдущем этапе. Поскольку при публикации проекта создается GraphQL-схема, вы можете сгенерировать GraphQL-запросы для выполнения CRUD-операций (create, read, update, delete) с данными приложения. Успешное выполнение GraphQL-запроса подтверждает успешную публикацию модели данных. Более подробная информация о генерации GraphQL-запросов содержится в статье Генерация GraphQL-запросов.

Чтобы убедиться в успешной публикации модели данных:

  1. На боковой панели DevTools нажмите значок UG_folder_icon.png и на панели Проекты в списке файлов выберите файл описания экранной формы Index.mdcontainer, который по умолчанию создается в папке containers.

  2. В разделе Действия Редактора Форм нажмите + и начните создавать действие со следующими параметрами:

    • Имя: по умолчанию;
    • Тип: GraphQL;
    • Сервис: storagedata;
    • Метод: graphql.
  3. В окне Действие нажмите кнопку Конструктор GraphQL и слева в области Генерация в раскрывающемся списке выберите имя проекта Управление контрактами и имя класса Contract.

  4. Нажмите Сгенерировать и убедитесь, что в области Запрос отображается текст запроса.

  5. Внизу окна Конструктор GraphQL нажмите Выполнить запрос и убедитесь, что в области Результат отображается результат запроса с количеством записей 0 ("totalCount": 0), поскольку данные еще не были введены в базу данных приложения.

  6. Закройте окно Конструктор GraphQL, затем закройте окно Действие.

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