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