可见性时间表

时间:2009-11-26 08:56:14

标签: php mysql scheduling

我希望有一个简单的数据库表来跟踪站点索引上的计划类别可见性。基本上它会告诉索引在感恩节和圣诞节之间显示圣诞节类别。

到目前为止,我正在考虑使用这样的表格,

schedule_id SMALLINT,

start_date TIMESTAMP,

end_date TIMESTAMP,

category_id SMALLINT,

annual BOOL

很简单,数据库可以选择时间落在开始/结束之间的任何行。

我的问题出现在我的年度旗帜上。基本上我认为每天一次数据库可以更新表,并将一年添加到end_date< now和annual为true,否则删除该行已过期。

我担心闰年或某事可能会抵消重新安排的日期。

我在这里走在正确的轨道上吗?

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您添加一年,而不是(比方说)365天,则无需担心闰年问题。

 ADDDATE( date, INTERVAL 1 YEAR )

在闰日日期增加1年可以获得第二年的2月28日

2008-02-29 -> 2009-02-28

您可以考虑从您的类别中删除您的日程安排,并使用连接表将类别与日程表相关联。然后,如果你想分享类别之间的时间表,它会更容易一些。 您可以通过添加其他连接表来使用其他地方的计划。

最后一个建议,而不是annual字段,有一个可以为空的字段来表示周期性:每周,每月等,再次为您提供更灵活的时间表模型。