Структура базы данных Firebase Firestore - PullRequest
0 голосов
/ 18 июня 2019

Я создаю приложение, используя flutter и firebase, и мне было интересно, какова лучшая структура базы данных firestore.

Я хочу, чтобы пользователи могли публиковать сообщения, а затем выполнять поиск по содержанию поста и по имени пользователя постеров.

Имеет ли смысл создавать одну коллекцию для пользователей с каждым документом, хранящим имя пользователя и другую информацию, и отдельную коллекцию для постов с каждым документом, содержащим пост и имя пользователя постера?

В маловероятном случае, когда количество постов превышает миллион или более, существуют ли дополнительные расходы для запроса такого рода массовой коллекции?

Имеет ли смысл хранить посты каждого пользователя в качестве подколлекции под своим пользовательским документом? Я считаю, что это потребует дополнительных операций чтения для доступа к под-коллекции каждого документа. Будет ли это дешевле или дороже, если я получу много трафика?

1 Ответ

0 голосов
/ 18 июня 2019

есть ли дополнительные расходы на запрос такого рода массивной коллекции?

Стоимость и производительность чтения из Firestore основаны исключительно на количестве данных (количество документов и их размер), которые вы получаете, и никак не на количестве документов в коллекции.

Но в Firestore ограничено количество записей, которые вы можете сделать для данных, которые "близки друг к другу". Это намеренно расплывчатое определение означает, что для масштабируемости записи обычно лучше распределять данные по отдельным подколлекциям, если данные естественным образом поддаются этому (например, в вашем случае).

Чтобы получить хорошее представление о Firestore и о компромиссах при моделировании данных, смотрите Знакомство с Cloud Firestore .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...