gpt4 book ai didi

mongodb - 带有 MongoDB 的重复事件模式

转载 作者:可可西里 更新时间:2023-11-01 09:46:19 25 4
gpt4 key购买 nike

我已经阅读了一些描述重复事件的数据存储方法的论文,但我仍在努力思考最佳实践,尤其是关于 MongoDB 的。

我主要关心的是廉价地检索给定时间范围内发生的所有事件。我的次要关注点是修改和更改单个事件而不会使整个事件链失控。

看了别人问过类似的问题,我想到了一个可能性。我并没有完全相信它,并且会喜欢一些正确方向的指示。

我的想法:在每个事件文档中,有...

  • 与 iCal 标准非常匹配的重复字符串字段
  • “事件”嵌入文档或数组字段,其中包含对特定事件的更改/编辑(例如更改描述或开始时间,或取消单个事件)。
  • 出现开始和结束字段,用于定义易于查询的重复规则边界

优点:

  • 能够存储更改并仍然保持与其他事件的关联
  • 很容易查询,但我在业务方面的模型必须构造每个事件

缺点/潜在问题:

  • 如果编辑一个事件,并且用户决定将更改标记为应用于“所有事件”——如何防止已经过去的事件被更改

最佳答案

这对我来说似乎是个好方法。为了“防止已经过去的事件被改变”,只需用一个 bool 标志标记它们即可。您应该能够在查询和更新时轻松使用该标志和开始/结束日期。

或者,您可以:- 为原始事件设置结束日期- 克隆事件,并为新事件设置新的开始和结束日期。- 清空克隆事件的出现字段

像这样做的事情:

之前:

{
'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" }
]
}

之后:

{
'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' : [
]
}

希望对您有所帮助!

关于mongodb - 带有 MongoDB 的重复事件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10890480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com