2012-04-26 52 views
0

我正在使用PHP,MySQL開發一個網站用於教育機構。PHP/MySQL講座分配

這樣做的一個功能是在創建批次時分配講座。爲了將講座分配到起始批次,系統將根據其可用性和資格提示講座。然後,課程協調員將作出決定。

我的問題是如何檢查給定時隙某一週的一天講座的可用性。(時隙改變不固定的持續時間)

我打算繼續講課時間表在一個表,它顯示lecture_Id,Batch_Id,day,start_time,end_time,start_day,end_day。

然後當可用性檢查我需要編寫一個複雜的查詢來檢查可用的lecture_Id。我還沒搞清楚。

有沒有其他聰明的方法來做到這一點?

感謝

+0

我建議將四個時間字段更改爲MySQL中的兩個DATE字段,這樣可以減少_all的樂趣!_ – nyson 2012-04-26 11:56:26

回答

0

你提出來存儲信息的方式是我覺得做它的第一種方式 - 在複雜的查詢是沒有那麼糟糕,但。

所以,如果我理解正確,你有講座存儲在另一個表中,與你的lecture_schedules表有一對多的關係嗎? 如果是這樣,這將得到給定時間範圍內的講座細節。

事情是這樣的:

SELECT * FROM lecture_schedules 
     INNER JOIN lectures USING(lecture_id) 
     WHERE start_day<=DAY(yourstarttime) AND end_day>=DAY(yourendtime) 
     AND start_time<=yourstarttime AND end_time>=yourendtime; 

注意,你將需要編輯的表名和列名,以反映實際的模式,與時間範圍值替換yourstarttimeyourendtime

希望這有助於

編輯: 該查詢使有關架構中的列和這些列的數據類型幾種假設 - 不只是復​​制粘貼&並期望它的工作第一次:)