我有以下結構的表:增加經常性活動,非經常性表
event
- id
- date_start
- number_hours
- date_end
- specialist_id/specialist assigned to this event.
用戶選擇的情況下將啓動日期,它會持續的小時數。目前所有這些事件都是非經常性的,但我想增加重複性事件的可能性。
我該如何以精心設計的方式來做到這一點? 我希望能夠擴大這個設計不僅支持每週和每月的事件,但還每個星期天,星期六,或其他重複類型的事件...感謝
我在想下面
事件
- id
- date_start
- recurring/whether the event is recurring or not
- weekly/(if repeats every 1 week, this will be 1, if repeats every 2 weeks, this number will be 2)
- monthly/(if repeats every 1 month, this will be 1, if repeats every 2 months, this number will be 2)
- last_occurred_date/date the event last occurred (if non-recurring, this equals date_start, if recurring, it does not)
- next_occurred_date/date when the event is supposed to occur next.
- specialist_id/what specialist took this event
因此,如果用戶對2012年10月1日增加了一個事件,每個月重複,那麼下面的條目添加到表:
date_start: 10/1/2012, recurring: 1, weekly: 0, monthly: 1 (it occurs every 1 month), last_occurred_Date: 10/1/2012, next_occurred_date: 11/1/2012)
我有cron工作,基本上經歷了所有的經常性事件(其中event.recurring = 1,並將新事件添加到事件表中)
因此,事件的下一個日期是11/1/2012。下面的條目添加:
id: 1 date_start: 11/1/2012 recurring: 0
爲什麼我添加每個重複事件發生日期條目的原因是因爲我必須指定一個專門給每個事件。所以專家們會收到郵件並附上鍊接,以便他們可以註冊每個活動。