我希望有一个简单的数据库表来跟踪站点索引上的计划类别可见性。基本上它会告诉索引在感恩节和圣诞节之间显示圣诞节类别。
到目前为止,我正在考虑使用这样的表格,
schedule_id SMALLINT,
start_date TIMESTAMP,
end_date TIMESTAMP,
category_id SMALLINT,
annual BOOL
很简单,数据库可以选择时间落在开始/结束之间的任何行。
我的问题出现在我的年度旗帜上。基本上我认为每天一次数据库可以更新表,并将一年添加到end_date< now和annual为true,否则删除该行已过期。
我担心闰年或某事可能会抵消重新安排的日期。
我在这里走在正确的轨道上吗?
有更好的方法吗?
答案 0 :(得分:1)
如果您添加一年,而不是(比方说)365天,则无需担心闰年问题。
ADDDATE( date, INTERVAL 1 YEAR )
在闰日日期增加1年可以获得第二年的2月28日
2008-02-29 -> 2009-02-28
您可以考虑从您的类别中删除您的日程安排,并使用连接表将类别与日程表相关联。然后,如果你想分享类别之间的时间表,它会更容易一些。 您可以通过添加其他连接表来使用其他地方的计划。
最后一个建议,而不是annual
字段,有一个可以为空的字段来表示周期性:每周,每月等,再次为您提供更灵活的时间表模型。