我最近採用了Employee
模型的項目,該模型需要將該人的可用小時數作爲屬性。在UI和數據庫中表示時間段
現有表單使用168個複選框來表示每週的每個小時,並將信息作爲7個24位二進制字符串存儲在數據庫中,每個位在當天的相應小時內充當布爾值true或false。
我真的想過渡到的東西多一點優雅和管理的,但我一直沒能拿出符合現有實現的靈活性,任何簡單的解決方案。
存儲時間段的開始和結束時間可以是一樣乏味的輸入時可以每天多次,並很可能使在特定的時間更復雜查詢的可用性。
在用戶界面和數據庫結構中處理這種類型的信息是否有最佳做法?
PostgreSQL原生支持時間間隔作爲數據類型。 – Pointy 2011-06-15 22:06:53
這絕對是很好的知道,但我不知道它真的解決了這個問題。如果我沒有弄錯,那麼這些時間間隔不會與特定的開始時間或結束時間相關聯,因此它們必須用作更復雜的數據結構的一部分來表示所有必需的信息。我想我真正想要的是一種乾淨,易於管理的方式來輸入,存儲和查詢168個布爾值。或者更好的方式來表示每週的每個小時。 – Luke 2011-06-15 22:15:34
那麼你可以將一個間隔字段與一個日期字段配對,這樣日期字段會給出開始時間和間隔的持續時間。不知道這是否會比兩個日期字段更好或更差;它取決於你想運行的語義和查詢。 – Pointy 2011-06-15 22:54:04