我有一个每周活动的表格,这些活动在一周中的某些日子(例如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)