我想要一个简单的数据库表来跟踪网站索引上的计划类别可见性。基本上,它会告诉索引在感恩节和圣诞节之间显示圣诞节类别。
到目前为止,我正在考虑使用这样的表格,
schedule_id SMALLINT,
start_date TIMESTAMP,
end_date TIMESTAMP,
category_id SMALLINT,
annual BOOL
很简单,数据库可以选择时间位于开始/结束之间的任何行。
我的问题来自于我的年度旗帜。基本上我认为数据库每天可以更新一次表,并向 end_date < now 和 Annual 为 true 的任何行添加一年,否则如果该行过期则删除该行。
我担心闰年或其他原因可能会抵消重新安排的日期。
我走的路正确吗?
有更好的方法吗?
最佳答案
如果您添加一年,而不是(例如)365 天,您将无需担心闰年问题。
ADDDATE( date, INTERVAL 1 YEAR )
在闰日日期上添加 1 年,即可得到下一年的 2 月 28 日
2008-02-29 -> 2009-02-28
您可以考虑将日程表从类别中分离出来,并使用一个连接表将类别与日程表链接起来。然后,如果您想在类别之间共享时间表,那就更容易了。 您还可以通过添加其他连接表来在其他地方使用这些计划。
最后的建议是,不要使用annual
字段,而是使用一个可以为空的字段来指示周期:每周、每月等,这再次为您提供了更灵活的计划模型。
关于php - 能见度时间表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1802404/