Задать вопрос
pro-dev
@pro-dev

Как правильно построить архитектуру?

Привет. Есть модуль событий. Задача модуля заключается в том, чтобы публиковать события, создавать регистрацию (принимать заявки). По типу яндекс афиша. Типы мероприятий: соревнование, мастер-класс, батлы, курсы и т д. Каждый тип может иметь отличительные данные. Например, на мастеркласс требуется лектор. Каждое событие может проходить в несколько периодов: разово или в определенные даты 21 марта и 1 апреля, 5 декабря и тд.

Например, есть событие Олимпиада искусств, у неё своя афиша и другие данные. В рамках которой проходит: фестиваль любителей, мастер-класс по актерскому мастерству «Грация», и курсы для преподавателей «стимул».

Все эти типы имеют свою систему регистрации. Все типы обьединяются под одним общим событием Олимпиада искусств. Но столько подтипов бывает не всегда.

Как мне лучше обьединить и выводить все типы в одном событии?

Предполагаю, что надо будет создать событие. Затем к этому событию создать типы: фестиваль, курс, мастер-класс. Правильно ли я мыслю? Как бы поступили вы? как лучше сделать?
  • Вопрос задан
  • 171 просмотр
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Любое мероприятие или событие - это узел графа.

Узел - имеет свой тип и содержит свои свойства в зависимости от выбранного типа.

Узлы имеют связи.

Для контроля узлов всего графа - создаётся событийный обсервер.
Он следит за корректностью статусов и целостности связанных/зависимых событий.
Также, он ведёт исторический лог смены статусов: открыто/завершено, и другие показатели мероприятий.

Любые другие объекты просто имеют связи по идентификатору с нужным узлом в "дереве" мероприятий (например, лектор).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы