Я пытаюсь разработать базу данных реального времени с Firebase, которая будет масштабироваться по мере роста нашей компании, и я не уверен, что будет наиболее выгодным в долгосрочной перспективе.
Я хочу создать группы пользователей, чтобы ограничить доступ к различным узлам в базе данных и каким-то образом обойти эти правила с исключениями. Текущая идея состоит в том, чтобы группы определяли, к чему пользователи могут получить доступ, а затем имели возможность применять исключения к конкретным пользователям, чтобы разрешить им доступ за пределами того, что делает их группа.
Это плохая практика? Не лучше ли иметь и роли, и группы?
Я также был бы признателен за некоторые отзывы о структуре, я подумал о двух разных способах, которыми я мог бы это сделать (вероятно, есть сотни других, но в интересах здравомыслия я ограничил их двумя). Имейте в виду, я пытаюсь сохранить структуру в соответствии с документами Firebase:
STRUCTURE A
permissions:
groups:
admin:
woody: true
buzz: true
accounts:
slinky: true
jessie: true
rules:
root:
admin:
read: true
write: true
purchasing:
accounts:
read: true
write: true
exceptions:
root:
jessie:
read: true
STRUCTURE B
groups:
admin:
members:
woody: true
buzz: true
rules:
root:
read: true
write: true
accounts:
members:
slinky: true
jessie: true
rules:
purchasing:
read: true
write: true
Обоснование этих двух действий таково: в структуре A я могу предопределить набор разрешений, которые остаются там всегда, независимо от того, не имеют ли к ним доступа никакие группы, они четко определены. Структуре B этого не хватает, но она также кажется мне немного чище.
Надеюсь, это имеет смысл, если нет, пожалуйста, не стесняйтесь задавать уточняющие вопросы. Ваше здоровье!
Златовласка