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

ADR-023. Человек и контекстные роли на витрине

Контекст

На публичной витрине один человек одновременно бывает преподавателем направления, преподавателем продукта, автором, методистом, сотрудником отдела, членом комитета олимпиады. Если моделировать эти роли как отдельные сущности людей — данные дублируются и связи теряются.

Решение

Витрина использует единую модель storefront_public_profile. Преподаватель, сотрудник отдела, участник команды продукта и член комитета олимпиады не являются отдельными типами людей. Это контекстные назначения одного публичного профиля, реализованные через storefront_profile_role с разными context refs (teacher_assignment, product_team_member, committee_member).

Последствия

  • один человек имеет один публичный профиль;
  • роль человека определяется контекстом отображения;
  • отзывы и достижения связаны с публичным профилем, а не с конкретной ролью.

Связи

  • relates: ADR-015