背景
小编在开发过程中被一个bug弄乱头脑,浅浅记录一下。
存在一个表,有两个字段,分别为start、end,代表开始时间及结束时间,该表就叫有效时段表吧
该表有个规则,新增数据的时候,不能存在交叉的时间范围。例如,A:5-10,B:7-8,C:3-6,D:9-12。
// 参数1:7 8
// 参数2:1 6
// 参数3:9 12
// 已存在数据:5 10
// 小编初次只靠考虑了参数1的情况
// start <= startParam and end >= endParam
// 5 <= 7 and 10 >= 8 检查到已存在数据
// 5 <= 1 and 10 >= 6 未检查到已存在数据
// 5 <= 9 and 10 >= 12 未检查到已存在数据
// 正解
// start <= endParam and end >= startParam
// 5 <= 8 and 10 >= 7 检查到已存在数据
// 5 <= 6 and 10 >= 1 检查到已存在数据
// 5 <= 12 and 10 >= 9 检查到已存在数据