Я работаю на сайте, который имеет схему базы данных, например дерево. Сверху вниз у меня есть:
- Одна компания может иметь много
- Места, которые могут иметь много
- флотов, которые могут иметь много
- Транспортные средства
Система разрешений пользователей должна быть гибкой, чтобы кто-то мог получить или иметь ограниченный доступ на любом уровне дерева. Например, человек, который управляет местоположением x, по умолчанию будет иметь полный доступ ко всем автопаркам ниже местоположения x и всем транспортным средствам ниже местоположения x. Но я также должен иметь возможность ограничить доступ пользователя к любому узлу ниже местоположения x.
Каким будет правильный способ разработки схемы для такой системы разрешений, как эта? Будет ли реалистичным хранить каждый узел, к которому у пользователя есть доступ, даже если он будет отчасти избыточным? Цель состоит в том, чтобы я мог легко выполнять запросы, например, чтобы получить все местоположения, к которым у пользователя есть доступ.