![]() |
1
2
在NoSQL数据库中,您应该为您打算如何使用数据建模。我强烈建议你阅读这篇文章 article on NoSQL data modeling . 顶层结构看起来很好,没有违反 Firebase's recommendation to limit nesting of data 。但是还有很多其他地方你可能会犯错误(这也是这个问题对于堆栈溢出来说有点过于宽泛的原因之一,但我还是会尝试回答其中的一些问题)。 我会将用户的列表分成一个单独的顶级节点:
这样
在这种情况下,您将复制数据。但是存储(相对)便宜,而优化更常见的数据读取是NoSQL数据库能够如此良好扩展的原因之一。 正如您可能注意到的,我关注于显示用户名列表、检索用户列表以及访问特定用户的配置文件。这些是用例,我们正在对数据进行建模以适应它们。 在NoSQL数据库中,您应该 为应用程序如何访问数据建模 .我强烈建议您阅读 关于NoSQL数据建模的文章 . 在那之后,写出你的用例列表,看看如何最容易地访问它的数据。自由地 denormalize 并且偶尔重复数据以适应用例。使用 multi-location updates 以保持非规范化和重复数据与其主实体同步。 |