【发布时间】:2011-12-08 18:22:30
【问题描述】:
我的应用要求用户安排可以每天、每周、每月或每两周重复发生的重复事件。
每两周一次,我的意思是每两周(14 天)从创建时提供的任意日期值开始。
我的jobs 表有两列支持这一点:job_frequency_id 和job_frequency_value。我可以安排除双周以外的所有类型。
第一个列是job_frequencies 表的 FK;它包含daily, weekly, monthy, bi-weekly 值。 job_frequency_value 包含频率对应的值。
例如:如果作业有 job_frquency_id == 3 和 job_frequency_value == 10,它将在每月的第 10 天运行一次。
如何在不篡改数据库结构的情况下添加双周支持?我将使用 job_frequency_value col 存储 14 天期间的开始日期,但我不确定未来的计算。
【问题讨论】:
-
您考虑一周的第一天和最后几天?您希望如何处理从一周中间开始的月份?在这种情况下,第一个“周”是否只是直到一周的最后一天的剩余时间(因此,如果该月从星期四开始,而星期六是一周的最后一天,那么第一周将被视为从星期四到星期六的几天)?或者,您是否只想将本月的第一天视为第一周的开始,而接下来的每一周都只是接下来的 7 天间隔?
-
@Jake,正如我在下面提到的,我想我已经对我的问题做了一个散列。为什么我真正需要的是一种在不篡改数据库结构的情况下每周做一些事情的方法。这很容易,使用我现有的专栏,每天、每月和每周安排事情。我不知道如何为 bye-weekly 做这件事。
-
@Jake,我已经相应地更新了我的问题。
-
@Mohamad 更烦人的双周对每隔一周和每周两次都有效。你的意思是一个重要的区别。
-
@Mohamad 进一步增加烦恼 - 双周通常被认为是每两周一次,无论它们在给定月份如何下降。根据您问题的原始版本,听起来您更像是在询问“半月一次”,或者将事情安排在给定月份发生两次(由于月份的不规则性,这是一个更加棘手的提议)。请让我们知道您正在尝试哪种方式。
标签: date coldfusion scheduling