2009-11-26 75 views
0

我想擁有一個簡單的數據庫表來跟蹤網站索引上的計劃類別可見性。基本上它會告訴索引在感恩節和聖誕節之間展示一個聖誕節類別。可見性時間表

到目前爲止,我想用一個表像這樣,

schedule_id SMALLINT, 

start_date TIMESTAMP, 

end_date TIMESTAMP, 

category_id SMALLINT, 

annual BOOL 

夠簡單,數據庫可以選擇其中時間落在開始/結束之間的任何行。

我的問題來與我的年度國旗。基本上我在想,一天一次數據庫可以更新表格,並將一年添加到任何行,現在end_date <和年份爲true,否則刪除該行,如果它已過期。

我擔心閏年或者某件事可能會抵消重新安排的日期。

我在正確的軌道上嗎?

有沒有更好的方法來做到這一點?

回答

1

如果你增加一年,而不是(比如說)365天,你將不必擔心閏年問題。

ADDDATE(date, INTERVAL 1 YEAR) 

增加1年閏日日期會與你2月28日爲下一年

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

您可以考慮從您的類別破壞你的時間表出來並具有連接錶鏈接類別的時間表。那麼如果你想分享一個時間表之間的類別它更容易一點。 而且您可能還可以通過添加其他連接表來使用其他位置的計劃。

最後的建議,而不是有一個annual字段,有一個可爲空的字段來指示週期性:每週,每月等,再次給你一個更靈活的時間表模型。