闲来看看一些题集,看到一个关于会议室预定系统的数据库设计题,相信很多兄弟都见过。。 这里遇到一个疑问,我考虑会议室应该是可以多时段预定的,不能仅因为明天上午预定出去导致明天下午甚至后天都没法预定 因为我看给的参考答案就给了两个关于预定时间的字段,分别记录起始时间和结束时间,感觉答案似乎并没考虑那么细 不才简单思考下觉得可以就两个字段一直去拼字符串。。然后查询是否可用的时候再取出来解析成时段再判断, 我觉得这是挺2的想法。。于是就想看看大家的高见,有什么巧妙的设计,给自己扫扫盲。 先谢过~

解决方案 »

  1.   

    如果沒有重複預約的情況,其實用開始時間和結束時間就夠了。判端衝突只要每次新增時檢察下面判斷條件就行,不用分析成時段。
    where sNew(新資料的開始時間) > EndTime(欄位) AND eNew(新資料的結束時間) <StartTime(欄位)
    如果有值就是有衝突。但如果可以重複預約,問題就很複雜,因為要判斷衝突就蠻困難的。