目前,我正在開發一個項目來管理服務器數據庫上的維護窗口等。基本上,我只需要準確到小時,但允許它們被設置爲允許或不允許一週中的每一天。每週計劃 - 如何將其存儲在數據庫中?
我對如何做到這一點有一些想法,但由於我自己工作,我不想在沒有反饋的情況下承諾任何事情。
爲直觀起見,它像流動的「圖」
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
-------------------------------------------
5AM |allow|allow|allow|deny |deny |allow|allow|
-------------------------------------------
6AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
7AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
8AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
9AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
... etc...
是否有這樣做的標準方式或可能給我一些想法,資源...
- 製作一種可以輕鬆保存和恢復的格式
- 使其可在數據庫中搜索(例如,不必將其反序列化以搜索時間)
[更新]
值得一提的是,每天可能,儘管可能性不大,被設置爲 「允許,拒絕,允許,拒絕...等等...」。跨度不能保證是全天唯一的。
這也不是唯一的時間表,將有數百個設備,每個都有自己的時間表,所以它會變得毛茸茸......大聲笑?
Rob詢問是否需要跟蹤每個星期 - 事實並非如此。這是一個通用的時間表,將適用於整個年度(定期維護)
你需要每週跟蹤的一年,或者這只是一個配置表中一般一週? – 2008-12-23 16:38:58
對於我來說,您需要旋轉此表,因爲如果您想要在特定的一天中獲得所有的小時數,那麼您將需要返回24行,並且不會輕鬆訪問WHERE數據。在我看來,有7行24列更有意義,1行給你一整天的時間。 – TravisO 2008-12-23 16:41:24