检索数据库时间验证

时间:2013-03-14 03:06:05

标签: php mysql

我目前正在使用PHP进行类调度。我想要发生的是通知用户该计划是否已经存在或者是否与数据库中的其他计划重叠。

对于每个时间表,我需要考虑三件事。时间,日期和房间。

示例:

现有数据库: 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 个答案:

答案 0 :(得分:1)

这是伪代码

中的一个快速而肮脏的解决方案

桌子房间(Room_id [int],Room_name [varchar])
table room_use(星期日[bit],星期一[bit],星期二[bit],星期三[bit],星期四[bit],星期五[bit],星期六[bit],Start_time [时间],End_time [时间])

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;