刚蹲了WC,放下手中的事情想了一下,可以搞定了
类这么定义,只要两个属性,order为bool值,oederTime。
我们反过来思考一下,这个题目的难点在于,客户预定是一个时间范围t1<预定时间<t2,而机构完成预定工作也是一个时间范围t3<实现预定<t4,两个范围去比较的时候,就开始乱了。
那么我们来考虑这个思路,从数据库没有数据开始:
客户预约时间t1(今天9点)和t2(今天11点),从控件拼凑好格式 '2013-11-22 09'和 '2013-11-22 11',传给后台,后台select count(*) from 机构预定表 where orderTime between t1 and t2,只要有数据,就说明不能预定,而布尔值bool如果是0表示开预定开始时间,1表示预定结束时间,依然不做判断用,而是作为后期业务的处理条件可能用到。这个值暂时是看看作为参考。
好了,数据库没有找到,返回COUNT(*)=0;那么就简单了,返回值为0,则可以预约。写入两条,
注意,是两条insert,分别加入
00000(自增流水号ID),0(布尔值Order,表示预定开始),'2013-11-22 09'(时间);
00001(自增流水号ID),1(布尔值Order,表示预定结束),'2013-11-22 11'(时间);
好了,第二个人来预定,今天的9点到今天的10点,'2013-11-22 09'和'2013-11-22 10'进去,肯定能找到一条记录,这条记录就是刚才的 '2013-11-22 09',而且还能发现预定开始时间是 '2013-11-22 09',因为此时布尔值order的值是0啊,表示开始。返回值count=1,反正不为0,都不能预定。
这就没问题了,这题的难点在,处理预定客户和机构执行预定,两个都是时间范围,必须把一个方面的时间定为1条。否则两边都是2条,怎么玩?
应该没错了。时间格式你看我上面写的。