在MySQL中存储每周事件的最佳方式?

erj*_*ang 8 mysql dayofweek

我有一个每周活动的表格,这些活动在一周中的某些日子(例如MTWTh,MWF等)运行并且在特定时间(例如上午8点到下午5点)运行.在MySQL中存储星期信息以最简单地检索和处理数据的最佳方法是什么?我的CakePHP应用程序需要检索所有发生的事件NOW().

对于一天中的时间,我只会使用TIME.对于一周中的几天,我考虑过一个7位的位域,一周的varchar("MTWThFr"类型交易),但这两个看起来像笨重的解决方案(varchar是笨重的).

有什么建议?

Wad*_* M. 10

这是一个直截了当的方式:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033
Run Code Online (Sandbox Code Playgroud)

如何使用:

只需在要运行它的日期设置1即可.由于7天的日历不太可能很快改变,因此该结构应该是不可变的.您可以选择任何天数组合.

回顾一下:

每周四运行:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  0   0   0   1   0   0   0   14-01-2010    14-01-2033
Run Code Online (Sandbox Code Playgroud)

每周四和周一运行:

EventID Title    Mon Tue Wed Thu Fri Sat Sun BeginningDate EndDate
1       MyEvent  1   0   0   1   0   0   0   14-01-2010    14-01-2033
Run Code Online (Sandbox Code Playgroud)

此外,每个事件计划只能获得一行,这样可以更方便,更清晰地以编程方式处理.

例如,要查找星期一要执行的所有事件,请执行以下操作:

select * from Events where Mon = 1
Run Code Online (Sandbox Code Playgroud)