数据库方案:重新计算每周任务 - 一周中的多天

时间:2017-11-21 20:40:28

标签: mysql database schema

所以,我找到了这个Stack Overflow Question和这个wiki等资源,建议使用数据库模式Calendar Events或Reoccurring任务。他们解释了如何创建处理以下场景的模式:

  • 日常任务
  • 每周任务(即每周二)
  • 每月任务(即每15日或每2个星期一)

但是,我真的希望让我的用户能够安排每周一,周三和周五,或每周六和周日的任务。 (类似于Google日历处理每周重复事件的方式,用户可以在其中勾选不同的日期)。

我希望能够做到这一点,因为我不希望用户必须创建两个单独的任务来完成此任务(因为如果他们需要进行更改,他们必须记住更新而不是一个但两个任务)。

思路:

  • 我的表中只有多个条目,一个用户希望任务重复一周的每一天,但这会使应用程序级别有点难以管理
  • 每个组合天数(星期一,星期一,星期二,星期二,星期三)都有一个固定号码,但总共有127种组合,这也是一个很难解决的问题

有人对实施这个设计有什么好主意吗?

我目前的架构:

ReoccurringRules
-------
RuleID PK int
Frequency varchar(7)
RepeatEvery int
RepeatBy varchar(4)
RepeatAt int
DayOfTheWeek int

频率选项:

  • 每日
  • 每周
  • 每月
  • 每年

RepeatBy 选项: (仅用于月度任务)

  • 日期

DayOfTheWeek: 仅用于月度任务,如果为RepeatBy选择了日期(星期日= 0,星期六= 7)

RepeatAt 含义因重复选项而异

  • 每日 - 没有意义
  • 每周 -
  • 重复一周中的某一天
  • 每月:日 - 周数(即第1个星期一,第2个星期一)
  • 每月:日期 - 重复的月份日(即第13日,第21日)
  • 每年:没有意义

每周重复一次是我的困境所在。我应该在此表中有多个具有不同RepeatAt值的条目吗?我应该输入数字1-127来指定哪些天数组合?有更好的方法吗?

希望这个问题有道理。如果没有,请告诉我,我会尝试澄清。

提前致谢!

0 个答案:

没有答案