В документации firestore нет подробного обсуждения компромиссов, связанных с использованием подколлекций и коллекций верхнего уровня, но указывается, что они менее гибкие и менее «масштабируемые». Учитывая, что вы жертвуете гибкостью при настройке данных в подколлекциях, должны быть некоторые определенные плюсы, помимо ментально удовлетворительной структуры.
Например, как время запроса хранилища данных по одному ключу в большой коллекции сравнивается с получением всех элементов из гораздо меньшей коллекции?
Предположим, мы хотим запросить большую коллекцию «Люди» для всех членов семьи. Как вариант, разделите данные по семействам в первую очередь на семейные единицы.
Люди -> человек: {семья: 'Смит'}
против
Семьи -> семья: {name: 'Smith'} -> Люди -> человек
Я ожидал, что последний будет более эффективным, но правильно ли это? Есть ли какие-нибудь оценки для каждого? Какие-либо другие преимущества субколлекций (например, для транзакций)?