Firebase的Structuring Data文档明确说明了"Avoid Building Nests" . 给出的主要原因是
当我们在Firebase中获取节点的数据时,我们还会检索其所有子节点 .
考虑到这一点,如果数据仍然正确地非规范化,那么深度嵌套是否仍然有效?
例如,以下是带有地理标记帖子的应用程序的可能Firebase结构,以及邮寄语言的geo-indexes:
posts/{postId}
indexes/
languages/
en/geohashes/{geohash}
es/geohashes/{geohash}
de/geohashes/{geohash}
将其与完全扁平的结构进行比较:
posts/{postId}
index_en_geohashes/{geohash}
index_es_geohashes/{geohash}
index_de_geohashes/{geohash}
我发现第一个嵌套结构清洁并自我记录 . 这和扁平结构一样有效吗? (比方说最常见的用例是'查询语言x geohashes')
1 回答
来自嵌套结构
/indexes/languages/en/geohashes/
和平面结构/index_en_geohashes/
的查询在计算上是等效的 .