2012-04-13 55 views
0

我們正試圖設計一個程序,允許用戶根據導師的可用性預訂導師。因此,我們希望導師告訴我們何時(哪些時間,哪天等)他們可用/不可用,並且當用戶預訂特定日期和時間時,我們只想向該用戶顯示該特定日期可用的導師和時間。調度php mysql db設計

例如,導師可以告訴我們,從9點到5點他們可以使用M-W。

我怎麼能設計這樣的表?

我想在做跟隨着

non-availability: 
(this allows tutors to tell me they are not available on a specific date ... say 4/15/2012 10PM) 
date date 
time_start datetime 
time_end datetime 

recurring_non-availability 
(this allows tutors to tell me that they are not available every Monday from 9-5pm) 
dayOfWeek enum 
time_start 
time_end 

所以基本上的,導師可以指定一週的每一天,時代他們是不可用的。他們還可以指定他們不可用的具體日期。如果用戶想要一個像4/20 10AM那樣的指定日期的導師,我將首先查詢不可用表以確保4/20 10 AM沒有衝突,然後查詢recurring_non_availability表以確保它們是週五(4月20日星期五)上午10點沒有衝突。我不確定這個設計是否會給我一個導師的可用性的最佳圖片。

+0

你的sql表中的這些列是由你認爲是基於你正在嘗試做的必要信息來決定的 - 這不是一個編碼問題。 – squarephoenix 2012-04-13 20:28:09

+0

@ techjunkie.css,我認爲這是一個有效的問題 - 儘管有點寬泛。 – miku 2012-04-13 20:31:14

+1

當教師_is_可用時,不是最好的說法,而不是當一個不是時候? – halfer 2012-04-13 20:31:15

回答

0

也許設置一個表,所有一週的導師將可用,然後有他們存儲在內的時間像這樣?

Tutor monday tuesday wednesday thursday friday 

bob  9-5 9-5  9-5  10-3 9-12