100分求一数据库设计

wmj001 2006-01-23 10:08:05
酒店管理,条件如下:
1.酒店客房分几种:单人套房、双人、四人等。
2.要登记房间预定时间和入住时间,精确到小时。
3.方便查询,和修改。能够方便的查询到每间房间的时间和人员信息。
4.审核机制,可多人同时预订同一间房(也就是先预订并读入数据库,通过审核确认再加入预定信息中)。
5.双人房可两人同是入住,四人类似。
流程:A01号房--信息:双人房--状态:1人入住(1月1号-1月10号),1人预定(1月2--1月8号)
客户--订A01---判断是否有人
...全文
223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
人鱼传说 2006-02-06
  • 打赏
  • 举报
回复
嘻嘻,酒店系统没有开发过,但在酒店工作过,系统也用过,所以对流程有些了解
hy2003fly 2006-02-05
  • 打赏
  • 举报
回复
baronyang(魔蝎)你是不是在酒店工作过还是做过类似的系统,想得这么详细,我连酒店都没有住过,不知道他们的操作细则,呵呵,你想的比我的好多了。
我觉得winternet(冬天)写得也不错,只是分的表太多了,有点散,应该适当集中一下。
hy2003fly 2006-02-04
  • 打赏
  • 举报
回复
我也认为两张表足够了,希望对你有帮助,有错也请指出。
房间表:
房间号 状态 种类 预定人数

其中:状态为:空闲,已住满,还有床位;
种类:单人房,双人房,……


房客表:
姓名 房间号 预定时间 通过否 入住时间 注销时间 费用
winternet 2006-02-04
  • 打赏
  • 举报
回复
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 退房

人鱼传说 2006-02-04
  • 打赏
  • 举报
回复
我认为用三个表比较合适
1>基础表basetable
房号 状态 种类 预定人数

2>主表 maintable
入住编号 房号 预定时间 入住时间 退房时间 入住人数 当值服务员 备注 房价 折扣 赔偿 其他消费 押金 实收 创建时间 创建人 修改人及时间 结账人员,结帐时间
注:入住编号是自动生成的,规则为房号+2位月度流水号
创建时间,创建人,修改人及时间都是自动的,记录操作人员及时间;开房时值班前台与退房时值班前台很可能不是同一人,分开记录,做到内部可查
实收=房价*折扣+赔偿+其他消费-押金,其他消费主要记录长途电话费或其他非用品等等

3>从表 detailtable
入住编号 客户名 性别 出生年月 地址 身份证号码 身份证扫描件
注:一人与多人入住都可以登记其身份信息

想得不够全面,意在与楼主,与大家交流
jsidiot 2006-01-26
  • 打赏
  • 举报
回复
好像只要两张表就够了,跟房间应该没有关系,如果是一个双人房间住一个人也算是满的话
我考虑的是一个房间住一个人就算是满了
房 间表 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'

闲来无事.随便写写,如有不妥,敬请指出
wmj001 2006-01-23
  • 打赏
  • 举报
回复
续:客户a--订A01---判断是否有人--是否可以入住--定1月3-1月5日--提交预定信息
操作员--查看A01预定信息--审核通过客户a的预定--修改A01状态为:2人入住(1月1号-1月10号和1月3-1月5日)
wmj001 2006-01-23
  • 打赏
  • 举报
回复

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧