我正在将我的关系数据库迁移到 Firebase。一般来说,我有一个工人计划员。他们可以将项目(“约会”)添加到他们的日程安排中。我已经阅读了 FireBase 文档,并找到了关于索引的部分。
所以我创建了以下结构(日期=YYYYMMDD
和时间= HHMMSS
):
{
appointments :
'id1' : { 'date' : '20141207', 'time' : '170000', worker : 'worker1' },
'id2' : { 'date' : '20141208', 'time' : '170000', worker : 'worker1' }
}
我为日期、时间和工作人员添加了一个索引,以便能够像这样查询数据(例如,获取今天的所有约会):
curl -X GET 'https://myapp.firebaseio.com/appointments.json?orderBy="date"&equalsTo="20141207"'
这按预期工作并且做得很好。问题是,约会的数量可以成倍增长(大约一年后,可能会有 100000 多个约会)。使用这些索引是一种好方法吗?另一种选择是单独存储日期和时间,如下所示:
{
'20141207' :
{ '170000' : { 'id1' : true } },
'20141208' :
{ '170000' : { 'id2' : true } }
}
为了确保每天可以非常快速地获取约会。或者 FireBase 是否能够仅使用索引来处理这个问题?