在简单的日历应用程序中,我特别感兴趣的是了解存储重复事件与计算它们的利弊。我列出了我认为每个人的优点/缺点,但我很好奇是否有人有经验并且可能能够为我提供更明确的推理方式
存储
赞成
缺点
计算
赞成
缺点
一般来说,上面的列表似乎指向计算,我认为这对于单个用户/少数用户系统是有意义的。如果要将系统扩展到托管10k +用户及其日历的Exchange服务器,决策是否会改变?
答案 0 :(得分:1)
看来你已经总结了利弊。也许他们的组合会更有效。
如果我是你,我通常会计算它,它在运营和批量数据管理方面最具成本效益。然后我存储 excepitonal 。因此,我们可以在我们的用户界面 中说“你想改变这个吗?” 如果我们的答案是否我们仍然只是改变规则。否则我们应该更改规则,但也应该更改例外记录。 这将是我们设计中最具成本效益的东西,但这是一个权衡。
但我们还有很多事要做:)这就是人们仍然雇用我们的原因。
答案 1 :(得分:1)
这将是使用主要商店存储您的活动以及像redis或memcached这样的辅助商店来存储您的定期活动的理想情况。
首次计算事件的重复发生时,您会将数据推送到辅助商店。从那时起它只是一个查询到redis来获取你的数据。如果要更新事件,只需删除键即可。他们下次你打一个查询时,你会发现它不是redis并重新填充数据。这样您就不必进行任何昂贵的更新。您支付的价格就像任何缓存解决方案,您的第一次计算将是昂贵的。
这将解决存储的第一个第二和第三个问题。
第一个问题,需要一个计算和存储未来事件的过程这与业务逻辑密切相关。也许它甚至无需计算这些日期即可解决?说实话,我完全不理解用例,所以我甚至不知道是否有必要首先计算和存储重复。
但总的来说,将它存放在您最喜欢的二级商店中。此数据不属于传统的RDBMS或文档数据存储。