php - 能见度时间表

标签 php mysql scheduling

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

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

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/

相关文章:

mysql - 对有序子查询中的第一个结果进行分组

r - 在 R 中每小时获取在线数据

laravel - laravel什么时候执行yearly()函数

php - 使用PHP和mysqli,是否可以在所有PHP脚本中的一个地方捕获所有mysqli错误?

javascript - 欧洲和南美用户的浏览器将渲染的 JS 中的坐标分隔符从句点更改为逗号

php - 在sql中添加新行

php - 将字符串添加到 JSON 数组中的一行

python - Spark 公平调度不起作用

php - MySQLi 查询默默失败,但在 SQL shell 中成功

php - 所有结果来自数据库