【发布时间】:2017-07-23 07:39:34
【问题描述】:
我们正计划将我们的应用程序迁移到 Firebase 以获得实时功能并提高性能。 这是一个存储客户产品和销售数据的销售应用程序。 我们的客户(我们称之为 Groups)通常每个都有 10 家商店(我们称之为 Companies)。
处理这么多数据并不是什么大问题。 但最近我们与一家拥有 1000 多家商店(每月新增 20 家)的大集团达成了交易。
我的问题是如何在没有性能问题的情况下构建这些数据并保持实时功能?
我认为,如果我们专注于如何构建 Groups-Companies,我们可以处理其他部分(销售、产品等)
"Groups": {
"Group1": {
"name": "Historical Tech Pioneers"
},
"Group2": { ... }
}
"Stores": {
"Store1": {
"name": "abc",
"group" "Group1"
},
"Store2": {
"name": "def",
"group" "Group1"
},
}
这种数据结构每次都可以处理数千条记录吗?
如果我每次都必须查询超过 1000 家商店,我会非常担心 Firebase 的性能。 每个人都说 1.000 条记录对于 Firebase 来说不算什么,但我做了一些测试,发现检索 1.000 条记录并没有他们说的那么流畅。
【问题讨论】:
-
您想要一个查询来检索所有 1000 条记录到某个客户端应用程序?这听起来不是个好主意。通常,您希望通过这些记录中的某个值使用索引查询来检索其中的一个或一小部分。
-
实际上,并非所有用户都会访问所有商店。我认为一个好主意是 User_Stores 节点,我可以在其中存储用户有权访问的所有商店。
-
@HugoRamos “我做了一些测试,发现检索 1.000 条记录并不像他们说的那样流畅” 请显示您的测试代码。更好的是:在我们可以访问它的地方复制它,例如 jsbin。只有这样,我们才能看到相同的东西并帮助您优化。另请参阅我对列表大小限制的解释:stackoverflow.com/questions/39712833/…
-
讨论 NoSQL 数据模型仅在特定用例的上下文中有意义。您通常会扩展您的数据模型以适应新的用例。有关一般介绍,请参阅 NoSQL data modeling 和查看 Firebase for SQL developers。
标签: angular firebase firebase-realtime-database nosql