我目前正在使用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室
通知:安排重叠。
想法。感谢。
答案 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;