Я пытаюсь минимизировать количество обращений к базе данных реального времени (Firebase) для структуры, которую можно определить следующим образом:
{
users: {
1: {
name: "John",
groups: {
1: true,
2: true
}
},
2: {
name: "Danny",
groups: {
1: true
}
}
},
groups: {
1: {
name: "Students",
users: {
1: true,
2: true
}
},
2: {
name: "Engineers",
users: {
1: true
}
}
}
}
Допустим, я хотел бы показать все связанные группыс идентификатором пользователя 1 (Джон).Из того, что я прочитал, правильный способ - прочитать ключи для users/1/groups
, а затем прочитать имя каждой группы на groups/{ID}/name
.
Проблема с вышеописанным процессом заключается в том, что дляпокажите имена всех групп для пользователя John, затем потребуется запрос для каждого идентификатора группы (плюс запрос на чтение ключей группы пользователя).Это довольно много ресурсов (по сравнению со структурой SQL).
Есть ли более эффективный способ сделать это?