2013-03-14 73 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;