Итак, у меня есть сущность «Пользовательский объект» и «Роли» и объект «Сервер» (представьте дискорд-сервер или свободное пространство), и у этого пользователя есть разные наборы ролей для каждого сервера, частью которого он является.
Пользователь имеет Роль Uid имеет Rid Сервер имеет Sid
есть tblUser
, tblRole
& tblServer
Пользовательский объект в json будет выглядеть следующим образом
{
firstName: 'John',
lastName: 'Smith',
phone: '500-500',
servers: [
{
serverName: 'Best Discord Server EVER',
serverId: 1,
roles: [ADMIN, MODERATOR, USER, FREQUENT_WRITER, ACTIVE]
},
{
serverName: 'Python Discord',
serverId: 2,
roles: [USER, FREQUENT_WRITER, ACTIVE]
},
{
serverName: 'Netflix Discord',
serverId: 3,
roles: [USER, INACTIVE]
}
]
}
Итак, для сопоставления всего этого у меня есть несколько таблиц соединения
tbljoinUserServer
, который присоединяет пользователя ко всем серверам, в которых он находится. Он имеет 2 столбца - Uid, Sid
Основное использование этой таблицы - получение массива серверов с информацией об этих серверах независимо от роли в данный момент.
Для Roles
у меня есть еще одна таблица соединения с тройным отображением
tbljoinUserServerRole
с 3 столбцами - Sid
, Uid
, Rid
Используется для генерации этого вложенного массива объектов.
Вопрос в том, как с этими 3 сущностями как я могу использовать Doctrine Mapping для их отображения?