Я пишу заявку на управление вечеринками. У меня есть несколько основных таблиц:
ПОЛЬЗОВАТЕЛИ: Люди, которые зарегистрировались, чтобы использовать приложение
ГРУППЫ: Пользователь может принадлежать ко многим группам. Примеры: {СЕМЬЯ, ДРУЗЬЯ}
USERS_GROUPS: к каким группам принадлежит пользователь.
СТОРОНЫ: разные партии, которые были созданы.
USERS_PARTIES: присоединиться к таблице (какие пользователи приходят на какие вечеринки)
Теперь я хочу реализовать концепцию частной вечеринки. Только пользователи, которые находятся в списке приглашений, должны иметь возможность просматривать и регистрироваться для этой частной вечеринки. Я хотел бы иметь возможность приглашать пользователей на эту вечеринку для каждого пользователя или / и для группы.
Кажется плохим решением сделать следующее:
1) Добавить поле для СТОРОН, называемое чем-то вроде private. Это будет либо 1, либо 0.
2) Создайте новую таблицу с именем GROUP_INVITATIONS. Это будет использоваться для указания, какие группы приглашаются на мероприятие.
3) Создайте новую таблицу с именем USER_INVITATIONS. Это будет использоваться для указания, какие пользователи приглашены на событие.
Является ли вышеуказанное разумным решением? Есть ли лучшие способы подойти к этому вопросу? В качестве дополнительного примечания в CakePHP есть концепция ACL (списки контроля доступа), но это позволяет пользователю быть только частью 1 группы. Это также выглядит как отдельная проблема от ограничения доступа к определенным действиям приложения MCP. Я планирую использовать ACL для этого, но в этом случае пользователи будут принадлежать одной и только одной роли, которая будет определять, к каким функциям они имеют доступ в веб-приложении.