У меня есть небольшая проблема, я делаю свою первую работу, используя NoSql с Firestore, и мне трудно пытаться сделать некоторые коллекции. (Я пришел из фонового SQL почти 7 лет, используя реляционную БД)
У меня есть 3 модели, пользователи, проекты и команды
Пользователь может быть в команде нескольких
Команда имеет много пользователей
У команды есть несколько проектов
Проекты только от одной команды
Пользователь может редактировать проекты (только если есть разрешение)
Пользователь может видеть все проекты из всей команды, к которой он принадлежит
так что я сделал что-то вроде этого в firestore
Коллекция / Документ / данные
+users
docId = fireAuth.uid {
//Some personal data here
team_id: someIdFromTeam // this is not null if is team leader
}
+teams
docId = generatedId {
name: Team One,
users:{
0: UserId1
1: UserId2
...
}
}
+projects
docId = generatedId {
name: Project One
team_id: someIdFromTeam
//Some Other Data.
}
+users_teams
docId = userId_teamId{
userId = userId
teamId = teamId
editor = true // or false if the user can edit projects from this team
}
У меня проблема в том, как получить все проекты, которые пользователь может видеть или редактировать, как я могу сохранить эти данные?
Я думаю, что наиболее экономически эффективным способом, когда я делаю меньше чтения на базе огня.
(Извините, если мой английский недостаточно хорош)