例如:共有2间房间(或N间房间)在8月份的使用状态
A房间8月份使用状态
1、2、3、4、5 号被预订
8、9 号被预订
20、21、22、23、24 号被预订
26、27、28、29、30 号被预订6、7 号空闲
10、11、12、13、14、15、16、17、18、19 号空闲
31 号空闲B房间8月份使用状态 
5、6 号被预订
13、14、15、16、17、18 号被预订
20、21、22 号被预订1、2、3、4 空闲
7、8、9、10、11、12 空闲
19 空闲
23、24、25、26、27、28、29、30、31 空闲如果两个用户(或N个用户)进行预订操作
A用户先要订8月份7、8、9号三天的房间
B用户再要订8月份10、11、12号三天的房间
怎么能通过上面的订房点找到各自可以使用的房间?
ps:这个例题是在论坛里看到的,比较详细就拿过来用了,请见谅!
   刚学sql老师让就个客房MIS,预订这一块很头疼啊!没多少分,还望赐教呀!
   软件用的是sql sever 2000

解决方案 »

  1.   

    回上面两楼:
    1.降低空置率可通:如1到5号,11到13好有人住,6号到10号还可以住的,怎么让系统查询这中间的空档?
    2.想将客房状态设为busy,free,booked三种,表结构确实没想好,没什么头绪,现在很混乱啊,因为上网查的是直接找free状态的空房,而没有考虑到预订的中间空挡可以在入住。
      
      自己有点想法,但不知道可不可行:
      1)客房表里有房号,入住时间,离开时间;预订表有房号,预订入住时间,预订离开时间;通过两表房号连接,找出空挡
      2)规定最多提前一个月预订,建一张客房在一个月里的状态,一个月内每一天为属性,房号为主码(但是属性每天都在变,不知道怎么实现)  各位技术,想法肯定比我好,帮我指出错误、指明方向吧!你们有好方法的话,那就请不吝赐教吧!我会好好学习的。帮帮忙!