Con*_*ham 5 schema schema-design mongodb mongodb-query
我已经阅读了一些描述重复事件的数据存储方法的论文,但我仍然试图围绕最佳实践进行思考,尤其是关于 MongoDB。
我主要关心的是廉价地检索在给定时间范围内发生的所有事件。我的次要关注是修改和更改单个事件,而不会使整个事件链失控。
看着其他提出类似问题的人,我想出了一种可能性。我并没有完全接受它,并且会喜欢一些正确方向的指示。
我的想法:在每个事件文档中,有...
优点:
缺点/潜在问题:
这对我来说似乎是一个很好的方法。为了“防止已经过去的事件被改变”,只需用一个布尔标志来标记它们即可。您应该能够在查询和更新时轻松使用该标志和开始/结束日期。
或者,您可以: - 设置原始事件的结束日期 - 克隆事件,并为新事件设置新的开始和结束日期。- 清空克隆事件的事件字段
像这样做的事情:
前:
{
'title' : "Gin O'Clock",
'recurrance' : 'DAILY',
'start_date' : '2012-01-01 17:00',
'end_date' : false,
'occurences' : [
{ 'date' : '2012-06-03 17:00', 'title' : "Jubilee Gin O'Clock" }
]
}
Run Code Online (Sandbox Code Playgroud)
后:
{
'title' : "Gin O'Clock",
'recurrance' : 'DAILY',
'start_date' : '2012-01-01 17:00',
'end_date' : '2012-06-05 17:00,
'occurences' : [
{ 'date' : '2012-06-03 17:00', 'title' : "Jubilee Gin O'Clock" }
]
},
{
'title' : "Gin O'Clock an our earlier",
'recurrance' : 'DAILY',
'start_date' : '2012-06-06 16:00',
'end_date' : false,
'occurences' : [
]
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
4118 次 |
| 最近记录: |