当前位置:编程学习 > C#/ASP.NET >>

请教一个统一房间如何按照时间分配房间的系统

比如说我现在酒店有20个标间,我又知道这20个标间的放好。且现在这个每个房间的入住时间可以从3月1日-3月8日,离店时间为3月5日-3月9日 。比如说A入住了301房间,入住时间为3月2日-3月5日,那么B还可以从3月6日入住到3月9日。 请问这样的系统如何建库建表。如何判断某个房间还可以预定,预定范围。那些不可以预定。 数据库 酒店预定系统 --------------------编程问答-------------------- 入住登陆表
房间ID,房间名称,状态,入住时间,离开时间

查询时间段1(入住时间),查询时间段2(离开时间)
Select * From 房间 Where 房间ID in(
Select 房间ID From 房间 WHere (状态='未入住(预约)' and datediff(dd,入住时间,'查询时间段2')<0) or (状态='已入住' and datediff(dd,离开时间,查询时间段1)>0)
) or 状态='空闲(未入住,未预约)' --------------------编程问答-------------------- 写错了,应该是From 房间 in(入住登记表)
Select * From 房间 Where 房间ID in(
Select 房间ID From 入住登记 WHere (状态='未入住(预约)' and datediff(dd,入住时间,'查询时间段2')<0) or (状态='已入住' and datediff(dd,离开时间,查询时间段1)>0)
) or 状态='空闲(未入住,未预约)'  --------------------编程问答-------------------- 楼主对酒店的系统不是很了解,就你这需求3个表,房间表,入住表,预定表,剩下的自己摸索 --------------------编程问答-------------------- 把你表里的状态值 逻辑搞清楚 就可以了。 
例如 你的状态 分为1,2,3  例如状态为3的和可以被预订的,用存储过程 嵌入到程序里。  --------------------编程问答-------------------- 事实求是地把大白话说清楚就行了。

预订登记是变动的业务数据,跟房间的其它静态信息肯定是分开的。例如


    房间号       预订入住日期    预订退房日期      姓名      .....
  --------   ------------  ------------  ------   
    301         2013.3.1      2013.3.5    张xx
    301         2013.3.6      2013.3.9    李xx


简单地记录就行了。其实人学了编程就先变傻了,连不懂编程的人说的大巴话都不会整理了。如果你能把普通人的简单的文字资料整理一下,这就是数据库表。

不要过分技术化。 --------------------编程问答--------------------
    房间号       预订入住日期    预订退房日期      姓名      .....
   --------   ------------  ------------  ------   
     301         2013.3.1      2013.3.5    张xx
     301         2013.3.6      2013.3.9    李xx
--------------------编程问答--------------------
引用 4 楼 jason_dct 的回复:
把你表里的状态值 逻辑搞清楚 就可以了。 
例如 你的状态 分为1,2,3  例如状态为3的和可以被预订的,用存储过程 嵌入到程序里。


瞎掰!

房间是静态的信息,而预定是变动的。房间跟预定是“一对多”的关系,怎么可能在房间里搞什么“状态”?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,