在我的一個Web應用程序(PHP和MySQL)中有一個用戶事件提醒。用戶可以添加下一個提醒日期,也可以設置重複間隔(即僅限一次,3個月,6個月和每年)。保存了具有價值的MySQL日期重複
0 - One time event
3 - Every 3 months
6 - Every 6 months
12 - Yearly
表像
id | emp_id | alert_date | repeat_interval
--------+----------------+-----------------------+----------------------
1 | 124 | 2014-05-02 00:00:00 | 3
--------+----------------+-----------------------+----------------------
2 | 123 | 2014-05-02 00:00:00 | 12
--------+----------------+-----------------------+----------------------
3 | 122 | 2014-02-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
4 | 121 | 2014-07-02 00:00:00 | 0
--------+----------------+-----------------------+----------------------
5 | 124 | 2014-05-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
6 | 125 | 2014-08-02 00:00:00 | 6
--------+----------------+-----------------------+----------------------
7 | 126 | 2014-06-02 00:00:00 | 12
--------+----------------+-----------------------+----------------------
8 | 127 | 2014-05-02 00:00:00 | 3
------------------------------------------------------------------------
的REPEAT_INTERVAL現在我每天早上有一個「的cronjob」跑,尋找事件和警報發送給用戶。我有以下的MySQL查詢
SELECT *
FROM alerts as al
WHERE date(al.alert_date) = DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);
這將返回tmrw的警報,我可以用這個郵件發送。但我的問題是如何也採取這些間隔?
即如果alert_date是2013年1月5日,並設置重複3個月,然後需要在 2013年1月5日發送郵件和3個月
的間隔其實這是這樣做的正確方法目的?或者我需要改變表格?
任何人都可以給我一個想法嗎? 在此先感謝
請更具體。您是否希望從'alert_date'或'alert_date'發送一封'每天3個月'的電子郵件,然後在'alert_date'後3個月再發一封電子郵件。 – RiggsFolly
由於該列名稱爲repeat_ * interval *,因此我認爲可以安全地假設這是一個重複發生。 – Eric