能见度时间表

发布于 2024-08-12 10:29:23 字数 423 浏览 2 评论 0原文

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

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

schedule_id SMALLINT,

start_date TIMESTAMP,

end_date TIMESTAMP,

category_id SMALLINT,

annual BOOL

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

我的问题来自于我的年度旗帜。基本上我认为数据库每天可以更新一次表,并向 end_date < 的任何行添加一年。 now 和 Annual 为 true,否则删除过期的行。

我担心闰年或其他原因可能会抵消重新安排的日期。

我走在正确的轨道上吗?

有更好的方法吗?

I want to have a simple database table to keep track of scheduled category visibility on a site index. Basically it will tell the index to display a Christmas category between Thanksgiving and Christmas day.

So far I'm thinking of using a table like this,

schedule_id SMALLINT,

start_date TIMESTAMP,

end_date TIMESTAMP,

category_id SMALLINT,

annual BOOL

Simple enough, the database can select any rows where the time falls between start/end.

My issue comes in with my annual flag. Basically I'm thinking that once a day the database can update the table, and add one year to any row where end_date < now and annual is true, otherwise delete the row if it's expired.

I'm worried that leap years or something could offset the rescheduled date.

Am I on the right track here ?

Is there a better way to do this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟雨凡馨 2024-08-19 10:29:23

如果您添加一年,而不是(例如)365 天,您就不需要担心闰年问题。

 ADDDATE( date, INTERVAL 1 YEAR )

在闰日日期中添加 1 年将得到下一年的 2 月 28 日。

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

您可以考虑将日程表从类别中分离出来,并使用一个连接表将类别与日程表链接起来。然后,如果您想在类别之间共享时间表,那就更容易了。
您还可以通过添加其他连接表来在其他地方使用这些计划。

最后的建议是,不要使用每年字段,而是使用可为空的字段来指示周期:每周、每月等,这再次为您提供了更灵活的计划模型。

If you add one year, rather than (say) 365 days you won't need to worry about the leap year issue.

 ADDDATE( date, INTERVAL 1 YEAR )

Adding 1 year to a leap day date gets you 28th February for the following year

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

You might consider breaking your schedules out from your categories and having a join table linking categories to schedules. Then if you want to share a schedule betwen categories its a little easier.
And potentially you can use the schedules elsewhere by adding other join tables.

Last suggestion, rather than having an annual field, have a nullable field to indicate a periodicity: weekly, monthly, etc., again gives you a more flexible schedule model.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文