【发布时间】:2016-07-25 09:38:34
【问题描述】:
我正在尝试为以下场景确定构建数据的最佳方式。我在一个有 50 个相互连接的田地的农场里养了 10000 只羊。当每只羊进入和离开田地时,我都会跟踪它们。我希望能够:
- 回顾性分析每只羊在给定时间段内的运动
- 我还想分析每个字段在一段时间内的使用情况
- 立即知道任何给定的羊目前在哪个领域
- 立即知道给定领域有哪些羊
我已经阅读了 documentation 关于去规范化数据的内容,我很感激我可以使用查询等做任何事情。
我的问题是:我应该像这样将进入/退出数据复制到羊和场节点吗?:
{
sightings: {
uniqueSheepId: {
FirebaseAutoId: {
type: enter
fieldId: uniqueFieldId
timestamp: xxxxxxxx.xxxxx
}
}
}
}
与
{
sightings: {
uniqueFieldId: {
FirebaseAutoId: {
type: enter
sheepId: uniqueSheepId
timestamp: xxxxxxxx.xxxxx
}
}
}
}
这似乎是获取任何给定领域中有多少只羊的实时快照的好方法。它还使我们能够轻松地看到一只羊现在在哪里以及它在哪里,而无需进行任何查询。显然,数据集的大小将比我使用查询增长两倍,但是获取数据的简单性是否超过了存储数据的成本?
我已经看到(并理解)SO 上的聊天室/成员示例,但我认为我希望从绵羊和现场的角度回顾性分析成员/使用情况,这使得我的问题与这些答案略有不同。任何建议都会很棒。
【问题讨论】:
标签: firebase firebase-realtime-database nosql