首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储循环时间窗口

如何存储循环时间窗口
EN

Stack Overflow用户
提问于 2008-10-11 05:42:03
回答 2查看 417关注 0票数 4

存储经常性时间窗口的首选方法是什么?

例如。如果我有一个日历系统,我需要能够容纳每天,每周或每月重复的事件,什么样的时间管理系统是最好的?

如何在数据库中最好地表示这一点?

详细信息

其具体目标是提供一组打开时间窗口。一旦我们有了这些时间窗口,代码就需要测试到达系统的消息是否在某个时间窗口内。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-11 22:10:26

这是长期拖延,但经过大量的测试和许多心痛,我们决定了一个特定的方案,以使这一工作。为了满足我们系统的需要,我们只需要每周重复一次,如果有的话。最终产品将按此设计。

以下是DB模式

代码语言:javascript
复制
id : int(10)
window_name : varchar(100)
start_date : datetime
end_date : datetime
start_time : time
duration : int(10)
timezone: varchar(100)
monday : tinyint(1)
tuesday : tinyint(1)
...
sunday : tinyint(1)

  1. 每个时间“窗口”都有一个设定的开始日期、结束日期、开始时间和持续时间。窗口将在开始日期和启动时间打开,并运行“持续时间”秒(
  2. )窗口将仅在指定的一周内打开

这是唯一允许窗口每周一次打开和关闭的系统,也是允许窗口持续到第二天早上的唯一系统。我相信外面有更复杂的系统,可以做循环窗口,但我们正在寻找一些灵活和快速的东西,不需要每月重复的事件或年度事件。

票数 1
EN

Stack Overflow用户

发布于 2008-10-11 06:45:37

我将创建一个RecurrenceType表,该表将保存日历系统支持的每种类型的递归记录。CalendarEvents表中的每个事件都将引用RecurrenceType表中的ID。

然后,我将在代码中有一个RecurrenceRules对象,它将保存计算下一个日期何时将被指定为当前日期或开始日期的业务逻辑,或者作为数组检索下一个N个日期。

大多数重复的逻辑可能都必须根据RecurrenceType表的ID对枚举值进行编码,除非它是一个非常简单的日历系统,否则如果您能够将所有数据驱动起来,我会感到惊讶。

希望这能有所帮助。听起来是个有趣的项目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/193707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档