【发布时间】:2015-03-10 09:55:36
【问题描述】:
我的 Firebase 中有两个项目:providers 和 services,我正在尝试找出使用 Firebase 推荐的扁平化架构方法构建和建立关系的最佳方法。
我的数据如下所示:
{
"services" : {
"hip_replacement" : {
"title" : "Hip Replacement"
}
},
"providers" : {
"the_blue_hospital" : {
"title" : "The Blue Hospital"
}
}
}
我想将这两个项目链接在一起,这样如果您要访问 Hip Replacement 页面,Blue Hospital 会显示在其下方,如果您要访问 The Blue Hospital 页面,Hip Replacement 会显示在该页面下方.本质上是一种双向关系。
构造这样的东西的最佳方法是什么?我的思路是这样的:
{
"services": {
"hip_replacement": {
"title": "Hip Replacement",
"providers": {
"the_blue_hospital": true,
"the_red_hospital": true
}
},
...
},
"providers": {
"the_blue_hospital": {
"title": "The Blue Hospital",
},
"the_red_hospital": {...
},
"the_green_hospital": {...
}
}
}
有没有更好的方法来实现这个或更优雅的解决方案?任何帮助表示赞赏。
提前致谢!
【问题讨论】:
-
这似乎可行,你当然可以做得更糟:)。您期望每个服务和提供商维度有多少数据?与读取相比,创建/删除操作的执行频率如何?
-
@JamesWing 在每个维度上都有相当数量的数据(10-12),但不超过 2-3 个级别。你为什么要问?如果我要处理大量数据,有没有更好的方法?
-
我的想法正好相反,让客户端从各种“连接”表中加载所有数据。如果有数百条小记录,那可能是非常可行的。
-
不确定什么是“join”表,您能详细说明一下吗?计划是让这些维度保持同步。
标签: firebase relationship denormalization