2014-04-18 48 views
0

我試圖根據工作日期間特定小時的可用性組創建調度系統。一個小組有可能在一週中的任何一天的任何時間提供服務。例如,A組可在星期一上午2點到上午8點,下午1點到11點,星期二在...數據庫設計:工作日和小時的可用性

這些時間很重要,因爲有超過400個組,並且管理員需要根據活動的可用性安排活動。我已經頭腦風暴3種不同的選擇,並閱讀了許多類似的情況,但沒有真正相關。

這些選項的全部3理論上應該工作,但是你會提醒:

選項#1

Group Table 
    -ID 
    -Name 
    -Availability (store as array) ["M0", "M1", "Su10"] where M represents Monday and 0 represents 12AM 

選項#2 組表 -ID

Group Availability Table 
    -ID 
    -GroupID 
    -Monday (store as array) ["0", "1", "2"] where 0 represents 12AM, 1 - 1AM, etc. 
    ...all 7 days of the week 

選項#3 組表 -ID

Group Availability Table 
    -GroupID 
    -M0 (boolean) 
    -M1 (boolean) 
    ...all 168 possible weekday-hour combos 

我不認爲當管理員每天會多次查詢這些數據時,Option#1是可行的,而Option#3是一個巨大的表格,儘管它只是布爾值不是很重的數據。謝謝您的幫助。

回答

2

我認爲你需要考慮一個時隙表。然後,您將有一個連接表有關團體到這個表

timeslots 
------------ 
timeslot_id 
weekday 
hour 

groups_to_timeslots 
–------------ 
group_id 
timeslot_id 

的時隙表將與您可能時隙包括7×24項。您的groups_to_timeslots表提供了多組到時隙的映射。

+0

我喜歡它!比我選擇的3個選項好得多。 – bigLund8