会议室预定系统表设计问题
大家好,问题的背景是:
会议室分布在不同楼层(如5-8楼),对每个会议室,可用时间是早上九点到晚上九点,使用时间的间隔为半小时的整数倍,也就是说我只能定10:00-10:30或者10:00-11:00,而不能10:00-10:20等,然后我想设计一张表来记录每个用户的预定记录,我的表设计如下:
table_name:bookings
字段如下:
record_id:int型,表示记录的id
user_id:int,用户的id
room_id:int,会议室的id
start_time:datetime,会议室开始使用时间
end_time: datetime, 会议室结束使用的时间
------------------
我的问题是当我去查询这张表,想查出哪些会议室符合用户的时间要求(时间不与其他已经预定的会议室时间冲突)的时候,假设用户指定时间为(t1,t2),而我要先拿出room表的id,然后对每个id循环比较这个表里面的所有时间段是否和(t1,t2)冲突,如果没有冲突,那么对应的room id就入选,但是比较起来因为datetime类型比较麻烦,而且感觉效率不高!
请问是不是我的表字段设计有问题?还是我的思路有问题?请大家指教
然后我也想过用别的方法,其中一是用unix_time的这个时间戳来表示start_time和end_time,这样在比较时会简单点?
第二种就是专门再开一张表,记录一个月内可用的时间点,然后定了哪个时间点就相应的给删除那条记录,不过要不断维护这个表
不知大家有什么看法?