当前位置:  开发笔记 > 编程语言 > 正文

你会如何存储可能的经常性时间?

如何解决《你会如何存储可能的经常性时间?》经验,为你挑选了1个好方法。

我需要存储一次,每天,工作日,每周,一周中的某些日子,一月中的某些日子,这可能是数字或符号,如每个月的第一个星期一,等等.

有什么建议?要查看的任何代码,数据结构或架构?



1> 小智..:

有复杂的解决方案和简单的解决方案 两个最简单的解决方案是:

    将重复发生的事件扩展到某些固定数量的实例,或将来的某个固定日期范围.将FK recurrence_id存储到指向重复描述的每个实例,并允许批量编辑和取消.

    预先调出扇出方法的优点是它可以非常容易地实现重复异常,这几乎肯定是您获得的第一个功能请求.

    在显示时计算.计算机速度很快,根据您希望能够回答的有关数据的问题,计算日期范围内的所有事件通常很容易.您可以聪明并尝试在进行重复计算之前快速包围日期范围,或者您可以从开始日期强制它.

除此之外,您只需要一个存储重复规则的解决方案,该规则适用于您用于计算重复的任何内容.(例如,如果您使用的是iCalendar启用库,那么您的架构是varchar(255),其中包含RRULE值)

如果您不得不推出自己的重复计算器,并且希望保持简单,那么将每次,每周,每月或每年的重复次数限制在您的前80%用例中,并且非常容易计算.

此时您的潜在重复模式如下所示:

id
recurrence_start
recurrence_end
type (daily|weekly|monthly|yearly)
day_of_week (for weekly)
month
day_of_month

坦率地说,复杂的解决方案可能不值得:)

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有