2013-03-14 69 views
0

我目前正在使用PHP進行類調度。我想要發生的是通知用戶計劃是否已經存在,或者是否與數據庫中的其他計劃重疊。檢索數據庫時間驗證

對於每個時間表,我需要考慮三件事情。時間,日期和房間。

例子:

現有的DB: MWF上午9:00 - 10:00; A室


用戶輸入#1: MWF上午9:00 - 10:00;房間A

通知:計劃現有。

用戶輸入#2: MWF 8:00 - 10:00 am;房間A

用戶輸入#3: MWF 9:30 - 10:00 am;房間A

通知:計劃重疊。

想法請。謝謝。

回答

1

這裏是僞代碼的快速和骯髒的解決方案

表間(ROOM_ID [INT],ROOM_NAME [VARCHAR])
表room_use(星期日[位],週一[位],週二[位],星期三[位],星期四[位],星期五[位],星期六[位],開始時間[時間],結束時間[時間])

Start transaction; 
select count(*) as n from Room_use 
where Room_id=? and Time between ? and ? and 
#build this dynamically with php 
(Sunday=1 or Monday=1 or Tuesday=1 or Wednesday=1 or Thursday=1 or Friday=1 or Saturday=1) 

if n>0 rollback 
else insert into room_use (Room_id, Sunday, Monday .......) values (?,?,?......) 
commit;