表有以下列:BH(预定流水号)people(预定人),room(预定房间),start_time(开始时间),end_time(结束时间),还应该添加什么列。预定表应该怎么创建才好,插入的SQL语句应该怎么样?
我想了很久都没有想到什么好的方法,只想到把room(预定房间),start_time(开始时间),end_time(结束时间),设为主键,再加上插入数据时要求是整点数且为一个钟(例如:9:00~10:00。10:00~11:00)
5 个解决方案
#1
预定流水号 作为主键就好了吧?
预定时间不会出现交叉还是在程序中控制吧.要么用触发器.
预定时间不会出现交叉还是在程序中控制吧.要么用触发器.
#2
程序具体或者用触发器具体怎么做能说说吗?我没有什么思路!
#3
这样也行
declare @start_time datetime,@end_time datetime,@room int
set @start_time= ..
set @end_time= ..
set @room= ..
if (select count(*) from tb where room=@room and (@start_time between start_time and end_time or @end_time between start_time and end_time))
print '可以预定'
else
print '正在预定中'
#4
declare @start_time datetime,@end_time datetime,@room int
set @start_time= ..
set @end_time= ..
set @room= ..
if (select count(*) from tb where room=@room and (@start_time between start_time and end_time or @end_time between start_time and end_time))>0
print '可以预定'
else
print '正在预定中'
少了一个东西
#5
start_time(开始时间),end_time 为这样的不妥当
(例如:9:00~10:00。10:00~11:00)
(例如:9:00~10:00。10:00~11:00)
#1
预定流水号 作为主键就好了吧?
预定时间不会出现交叉还是在程序中控制吧.要么用触发器.
预定时间不会出现交叉还是在程序中控制吧.要么用触发器.
#2
程序具体或者用触发器具体怎么做能说说吗?我没有什么思路!
#3
这样也行
declare @start_time datetime,@end_time datetime,@room int
set @start_time= ..
set @end_time= ..
set @room= ..
if (select count(*) from tb where room=@room and (@start_time between start_time and end_time or @end_time between start_time and end_time))
print '可以预定'
else
print '正在预定中'
#4
declare @start_time datetime,@end_time datetime,@room int
set @start_time= ..
set @end_time= ..
set @room= ..
if (select count(*) from tb where room=@room and (@start_time between start_time and end_time or @end_time between start_time and end_time))>0
print '可以预定'
else
print '正在预定中'
少了一个东西
#5
start_time(开始时间),end_time 为这样的不妥当
(例如:9:00~10:00。10:00~11:00)
(例如:9:00~10:00。10:00~11:00)