Was this article helpful?

Спасибо за вашу оценку!

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

Практикум. Система регистрации на мероприятия. Объектная модель.

Общие сведения об объектной модели

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

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

  • Атрибут – значимая характеристика объекта, используется для идентификации, классификации, выражения количественной характеристики или состояния объекта;

  • Тип объектов – набор характеристик(атрибутов);

  • Экземпляр – набор сведений о конкретном объекте, создается Системой при заполнении данными;

  • https://docs-public.gdcloud.org/platform/ru/architecture-of-system-objects.html#%D1%80%D0%B5%D0%B5%D1%81%D1%82%D1%80%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2[Реестр объектов] – накопитель сведений одного типа;

  • Связь – индикатор взаимоотношений между объектами. Существует 3 типа связей: наследования, агрегации и ассоциации.

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

Работа с объектной моделью включает в себя несколько этапов:

  1. Создание предметной области, на которой будет происходить создание объектной модели;

  2. Создание типов объекта. Перед созданием типа объекта необходима проверка отсутствия в Системе, что позволит обойти дублирование данных;

  3. Определение атрибутивного состава нового типа объектов и других настроек;

  4. Настройка связей ассоциации и агрегации между типами объекта;

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

Описание модуля

Для решения рассматриваемой бизнес-задачи необходимо построить объектную модель, содержащую следующие типы объектов:

  • Мероприятие – ключевой тип объектов, объекты этого типа будут содержать данные мероприятий, которые будут заполнять организаторы и просматривать участники с возможностью регистрации на мероприятие;

  • Тип мероприятия – справочный тип объектов, который будет хранить описание типа мероприятий;

  • Площадка – справочный тип объектов, который будет хранить информацию о площадке для проведения мероприятий;

  • Контактное лицо - справочный тип объектов, экземпляры которого будут хранить информацию о контактных лицах площадок;

  • Участник - справочный тип объектов, который будет хранить в себе записи о зарегистрированных участниках мероприятий;

  • Заявка – тип объектов, экземпляры которого будут хранить информацию об участнике, мероприятии, на которое тот зарегистрировался, и электронный билет. Связывает типы Участник и Мероприятие.

Целевая объектная модель должна выглядеть следующим образом:

image112

Создание объектной модели

Для удобства работы на платформе предусмотрена работа с моделью данных в виде ER-диаграммы (диаграммы предметной области), которая наглядно отображает состав и связи между элементами настраиваемой объектной модели.

Для создания новой ER-диаграммы необходимо на стартовой странице в виджете «Предметные области» нажать на кнопку «Создать».

image014

В результате появится окно создания новой предметной области.

image015

Щелчком мыши по текущему наименованию предметной области зададим новое наименование - «Мероприятия».

image016

Создание типа объекта «Мероприятие»

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

В редакторе предметной области предусмотрено добавление уже имеющихся типов (системных) и создание новых.

Для создания нового типа объектов в предметной области необходимо нажать на кнопку «Создать новый тип объекта».

image

В результате появится окно создания нового типа объекта.

В блоке «Основное» данной формы расположены поля, отвечающие за наименование объекта, его отражение в БД в качестве реляционной таблицы, а также указывается объектродитель, от которого будут унаследованы базовые атрибуты. Родитель «Объект» - является абстрактным объектом, содержащим минимально необходимый набор атрибутов. Важно корректно заполнить поля «Наименование таблицы» и «Родитель», так как после сохранения данного типа, изменить их будет нельзя.

Создадим тип объектов под названием «Мероприятие» [EVENT]. Это ключевой тип объектов, объекты этого типа будут содержать данные мероприятий, которые будут заполнять организаторы и просматривать участники с возможностью регистрации на мероприятие. Необходимо заполнить основные поля в окне настройки типа. В качестве родителя при создании нового типа выберем тип объекта – «Объект». После заполнения ключевых полей нужно сохранить изменения с помощью кнопки «Сохранить».

image018

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

В блоке «Дополнительные настройки» можно указать расширенные настройки создаваемого типа объектов.

image019

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

image020

В нижней части формы на первой вкладке расположены атрибуты объекта. На вкладке «Атрибуты» отображается список всех атрибутов данного типа в таблице. При создании нового объекта на данной вкладке располагаются атрибуты, унаследованные от родителя. Чтобы обратиться к ним, необходимо установить чек-бокс «Показать атрибуты родительского типа».

image021

В списке атрибутов указываются и собственные атрибуты - специально созданные или существующие, добавленные с другого типа объектов атрибуты.

image

Рассмотрим создание нового атрибута «Дата окончания мероприятия». Нажмем на кнопку «Добавить новый». Заполним поля Наименование – «Дата окончания мероприятия», Наименование поля для таблицы – [END_EVENT_DATE], Тип – «Дата и время». Нажмем на кнопку «Ок» и сохраним внесённые изменения.

image

Аналогичным образом создадим атрибут «Дата начала мероприятия» [START_EVENT_DATE], тип – Дата и время:

image

Добавим существующий атрибут. Нажмем на кнопку «Добавить существующий». Выберем из полного списка атрибут «Изображение» [SYS_IMAGE].

image

Откроем добавленный атрибут на редактирование, воспользовавшись кнопкой в поле работы с атрибутом или нажав дважды на необходимый атрибут, и изменим название на «Фото мероприятия».

image

Настроим визуал атрибута на вкладке «Визуал»: сделаем активными чек-боксы «Скрывать кнопки во всплывающее меню» и «Автоматический подбор ширины изображения».

image

Сохраним изменения в окне настройки типа объекта и в предметной области.

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

Создание справочников

Создание типа объекта «Тип мероприятия»

Создадим в предметной области новый тип объекта, который будет хранить описание типа мероприятий - «Тип мероприятия» [EVENT_TYPE]. Сохраним тип объектов.

image028

Перейдем в раздел «Дополнительные настройки» и настроим вид контроля прав - «Все пользователи имеют полный доступ».

image029

Сохраним предметную область с помощью кнопки на панели управления.

Создание типа объекта «Площадка»

Создадим в предметной области новый тип объекта, который будет хранить информацию о площадке для проведения мероприятий - «Площадка» [EVENT_PLATFORM]. Сохраним тип объектов.

image030

Настроим вид контроля прав - «Все пользователи имеют полный доступ».

image029

Добавим для типа объекта «Площадка» новые атрибуты:

  • Возможность подключения online [IS_ONLINE_AVAILABLE], тип – логический – визуал «Логический атрибут в виде переключателя»;

  • Часы работы [OPEN_HOURS], тип – строка.

image

Добавим существующий атрибут «Место и адрес мероприятия» [EVENT_ADDRESS]:

image

Поменяем наименование атрибута на «Адрес» и заполним поле Размер значением «2000»:

image

Сохраним предметную область с помощью кнопки на панели управления.

Создание типа объекта «Контактное лицо»

Создадим в предметной области новый тип объекта - «Контактное лицо» [EVENT_CONTACT], экземпляры которого будут хранить информацию о контактных лицах площадок. В качестве родителя выберите из списка тип объекта «Сотрудник», поскольку создаваемый тип является результатом развития существующей структуры и будет наследовать необходимые атрибуты типа объекта «Сотрудник». Сохраним тип объектов.

image034

Настроим вид контроля прав - «Все пользователи имеют полный доступ».

image029

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

Для родительских атрибутов «Телефон» [PHONE] и «E-MAIL» [EMAIL] очистите значения визуала, чтобы при заполнении объекта типа «Контактное лицо» избежать ошибки из-за незаполненных полей. Для этого активируйте чек-бокс «Показать атрибуты родительского типа», найдите атрибуты и двойным нажатием откройте их для редактирования. Во вкладке «Визуал» с помощью кнопки с иконкой ластика очистите поле.

image

Создадим новый атрибут «Номер телефона» [CONTACT_PHONE], тип – строка, Визуал – «Телефон».

image

Сохраним предметную область с помощью кнопки на панели управления.

Создание типа объекта «Участник»

Создадим в предметной области новый тип объекта, который будет хранить в себе записи об участниках мероприятий - «Участник» [PARTICIPANT] с объектом-родителем «Сотрудник». Настроим вид контроля прав - «Все пользователи имеют полный доступ». Сохраним тип объектов.

image037

Сохраним предметную область с помощью кнопки на панели управления.

Создание типа объекта «Заявка»

Создадим в предметной области новый тип объекта, в которых будут храниться записи с указанием участников на мероприятия - «Заявка» [EVENT_REQUEST]. Настроим вид контроля прав - «Все пользователи имеют полный доступ». Сохраним тип объектов.

image038

Добавим существующий атрибут «Прикрепленные файлы» [SYS_FILE_ID] и поменяем его наименование на «Электронный билет» – в нем будут храниться билет на мероприятие конкретного участника. Во вкладке «Визуал» очистите значение представления.

image

Сохраним предметную область с помощью кнопки на панели управления.

Создание связей между типами объектов

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

image040

Ассоциативные связи для типа объекта «Мероприятие»

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

image

Настроим ассоциативную связь от типа объектов «Мероприятие» к типу объектов «Площадка». В появившемся модальном окне создания нового объектного атрибута «Площадка» в типе объекта «Мероприятие» нажмем на кнопку «Ок», таким образом настроив связь. Сохраним предметную область с помощью кнопки на панели управления.

image

Таким образом объектный атрибут «Площадка» будет добавлен в тип объектов «Мероприятие».

image

Аналогичным образом, путем создания ассоциативных связей, добавим объектный атрибут «Тип мероприятия» [EVENT_TYPE_ID] в тип объекта «Мероприятие».

image

Сохраним предметную область с помощью кнопки на панели управления.

image

Ассоциативные связи для типа объекта «Заявка»

Добавим ассоциативную связь от типа «Заявка» к типу объекта «Мероприятие»: добавим атрибут «Мероприятие» [EVENT_ID].

image046

Сохраним предметную область с помощью кнопки на панели управления.

Добавим ассоциативную связь от типа объектов «Заявка» к типу объектов «Участник»: добавьте атрибут «Участник» [PARTICIPANT_ID].

image

Сохраним предметную область с помощью кнопки на панели управления.

image048

Ассоциативные связи для типа объектов «Контактное лицо»

Добавим ассоциативную связь от типа объектов «Контактное лицо» к типу «Площадка»: добавьте атрибут «Площадка» [PLATFORM_ID].

image

Сохраним предметную область с помощью кнопки на панели управления.

image050

Преобразование ассоциативных связей в связи агрегации

Для добавления дочернего атрибута в тип объектов используется преобразование ассоциативной связи в связь агрегации. Для этого необходимо кликнуть правой кнопкой мыши по стрелке ассоциативной связи между типами объектов и выбрать команду «Преобразовать в связь агрегации».

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

image

Появится окно добавления дочернего атрибута. Применим новый тип связи и создание атрибута по кнопке «Ок».

image

Сохраним предметную область с помощью кнопки на панели управления.

image053

Аналогично изменим тип связи и добавим дочерний объект «Заявки участников» в тип объекта «Мероприятие».

image

Сохраним изменения на предметной области. В результате должна получиться следующая диаграмма предметной области:

image055

На этом настройка объектной модели в рамках практикума «Система регистрации на мероприятия» завершена.