Firebase的Structuring Data文档明确指出"避免构建嵌套"。给出的主要原因是
当我们在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')
答案 0 :(得分:1)
来自嵌套结构/indexes/languages/en/geohashes/
和平面结构/index_en_geohashes/
的查询在计算上是等效的。