Я хотел бы услышать некоторые мысли о том, как лучше оптимизировать нашу схему для достижения следующего.
У нас есть несколько объектов / записей в БД (события, места и т. Д.), Некоторые из которых имеют дочерние объекты (это означает, что применяются те же разрешения - изображения, мета и т. Д.)
Пользователи могут принадлежатьдля групп, так что родительские объекты, такие как события, места могут быть доступны для редактирования / просмотра всем, только для группы, только для одного пользователя.
В настоящее время у нас есть таблица пользователей, групп пользователей и групп для управления пользователями и группами.
Каждый родительский объект, такой как объекты, в качестве столбца для user_id и group_id.
Работает нормально (в symfony 1.4), но это грязно - каждый запрос для чего-либо должен делать сложные объединения, чтобы получить возможные группы и т.д ..Мы хотели бы найти более простой способ.
Я был очень рад компоненту ACL Sf2, но мне снова и снова говорят, что я не должен использовать его для поиска объектов, которыми может управлять пользователь - скореечто я должен использовать ACL, чтобы узнать, разрешено ли пользователю управлять своими собственными объектами (кажется, не очень полезно, но неважно).
Все альтернативные попытки онлайн, которые я нашел, делали это, например, чтобы вытащить все объекты из БД, а затем отфильтровать по ACL - это мило для мамы и поп-сайта - не случится с миллионами объектов.
Итак ... Я хотел бы услышать идеи о том, как мы могли бы сделать это - мы также открыты для того, чтобы оставить Symfony для чего-то, что имеет масштабируемое решение ACL, но пока не нашли ничего такого (php или ruby), настолько открытого для этого.также, хотя мы хотели бы продолжить использовать Sf.Обратите внимание, что мы намерены использовать MongoDB в случае, если это имеет значение.