前言:项目中遇到了类似会议室预约的时间段被占用,预约车辆时间段被占用等。
start:预约开始时间。
end:预约结束时间。
必备条件:start <= end
思考:
怎么判断是否被占用呢?
预约的时间,与目标数据库中任意一条的存在交集,则可以视为占用。
有交集的情况有那几种呢?
合并则是 (a >= start and a <= end) or (b >= start and b <= end) or (a <= start and b >= end) or (a >= start and b <= end)
优化:a <= end and b >= start
(即可满足4种条件)
补充没有交集
取反(没有交集)
a > end or b < start
总结:思路不太清楚可以画个图就明了了。查询出目标库中有交集的数据就说明有占用,如果没有则没有占用。