正 文

数据库设计实践篇:客房管理


www.7dspace.com  更新日期:2006-2-9 22:28:17  七度空间


  酒店管理的数据库设计案例,需求如下:

  1.酒店客房分几种:单人套房、双人、四人等。

  2.要登记房间预定时间和入住时间,精确到小时。

  3.方便查询,和修改。能够方便的查询到每间房间的时间和人员信息。

  4.审核机制,可多人同时预订同一间房(也就是先预订并读入数据库,通过审核确认再加入预定信息中)。

  5.双人房可两人同是入住,四人类似。

  流程:A01号房--信息:双人房--状态:1人入住(1月1号-1月10号),1人预定(1月2--1月8号)

  客户--订A01---判断是否有人

  客户a--订A01---判断是否有人--是否可以入住--定1月3-1月5日--提交预定信息

  操作员--查看A01预定信息--审核通过客户a的预定--修改A01状态为:2人入住(1月1号-1月10号和1月3-1月5日)

  双表解决方案:

  房间表:

  房间号 状态 种类 预定人数

  其中:状态为:空闲,已住满,还有床位;

  种类:单人房,双人房,……

  房客表:

  姓名 房间号 预定时间 通过否 入住时间 注销时间 费用

  房 间表 t_room

  state 标志房间的状态是空闲还是客满

  t_orderlist

  其他的次要信息就不说了.主要说一下关键的字段把

  state

      E 已经结帐,回填t_room的state 为空闲

      A 收到预定,但尚未确认

      C 已经确认,确认的同时回填房间表t_room的state为客满

      X 在确认唯一有效订单的同时.修改该房号的其他订单状态为X.也就是说如果该房号存在一条C,则其他必为X

  t_orderdetail

       orderlist的儿子表

       start_datetime

       end_datetime

       parent_id

       state E结帐A入住

  相同房号的几条记录,都是E则回填t_orderlist state = 'E'

  三表解决方案:

  1>基础表basetable

  房号 状态 种类 预定人数

  2>主表 maintable

  入住编号 房号 预定时间 入住时间 退房时间 入住人数 当值服务员 备注 房价 折扣 赔偿 其他消费 押金 实收 创建时间 创建人 修改人及时间 结账人员,结帐时间

  注:入住编号是自动生成的,规则为房号+2位月度流水号

  创建时间,创建人,修改人及时间都是自动的,记录操作人员及时间;开房时值班前台与退房时值班前台很可能不是同一人,分开记录,做到内部可查

  实收=房价*折扣+赔偿+其他消费-押金,其他消费主要记录长途电话费或其他非用品等等

  3>从表 detailtable

  入住编号 客户名 性别 出生年月 地址 身份证号码 身份证扫描件

  注:一人与多人入住都可以登记其身份信息

  多表解决方案:

RoomTypeMaster
ID  Name
1 单人
2 双人
3 四人

RoomMaster
ID  Name  RoomType
1   A    1
2   B      1
3   C      2
4   D      3

RoomStatusMaster
ID Name
1       未订
2 未订满
3 订满
4 未入住
5 未住满
6 住满

RoomStatus
ID Room  RoomStatus
1 1   3
2 2 1
3 3 1

RoomBook
ID    Room    Booker   BookTime      StartTime     EndTime   PersonQuantity   Permission 
1 1      甲      2005/10/10 10:25 2005/10/11 2005/10/20 2   1

RoomBookExecution
ID    RoomBook    ActualStartTime   ActualEndTime   Status
1 1    2005/10/11        2005/10/18      1

RoomBookExecutionStatusMaster
ID Name
1 入住
2 取消
3 退房


上一篇:IDS的交换机局限问题的分析与对策
下一篇:调用 Web Service 失败
标题:数据库设计实践篇:客房管理 作者:未知 来源:论坛
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐