這與我最後一個問題類似,但它更多地歸結爲這個問題。這是一個規範化錯誤?
我正在設計一個系統來安排任務;大多數時候重複執行的任務。例如,用戶可以安排「掃地」發生在每週的星期一,星期三和星期五。
我可以從日程安排中瞭解某項任務是否會在某一天完成,最重要的是,我可以判斷是否應該在當天完成任務。然後,我必須向工作人員顯示當前任務列表(並將其發送給站點周圍的手持設備)。
然後用戶指出他們已經開始了任務(所以我們需要一個狀態任務啓動)並且他們完成了一個任務(Task-Worked)。如果工作人員沒有很好地完成這項工作,檢查任務的人可以「失敗」,進入結束狀態任務失敗。任務也可以有其他一些狀態,但這對於這個問題的範圍應該是足夠的。
什麼我不知道是我是否應該創建數據庫中的每個任務發生的實例,從而使我能夠存儲狀態對任務的特定實例。我想另一種看待它的方式是我在數據庫中創建「Due」的初始狀態,或者「Due-Today」以及它到期的實際DateTime(或者至少Window of Opportunity的DateTime做任務)。
但是 - 這個狀態總是可以得到因爲這是我從那裏生成「今天」任務列表的地方,所以它感覺像是一個規範化錯誤 - 感覺就像我重複可以派生的數據無論如何。
優點:
這將允許產生「由於」任務有一個確切的日期,時間,從而從更改時間表,只會影響以後的日子裏屏蔽它(雖然,批准我時刻表歷史記錄表格允許我查看舊數據)。
該特定日子的日程安排可能會調整,以防萬一那天發生了一些非同尋常的事情。
它在數據庫中創建一個正式的狀態,而不是派生它(我剛剛做出來了嗎?)。
缺點:
- 這將需要一個後臺進程產生這些實例(或產生「到期」,或「由於-今天」的狀態,這取決於你如何看待它)。
我想我的問題歸結爲:
1)如果計劃只是一個確切的日期 - 時間的列表,每個條目描述了任務本身就沒有問題。這是事實:這個任務在這個日期時間。一旦這個任務完成,我們就將這個事實存儲起來。
2)然而,循環調度只是描述每個任務的時間,而不是描述實際發生的情況。
我希望這是有道理的。思考?
感謝Branko(感謝您對另一個問題的回答)。我正在慢慢努力,所以不要忽視答案 - 我會在稍後回覆。謝謝! – Mark