宾馆客房管理系统数据库设计报告

更新时间:2023-12-10 10:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

宾馆客房管理系统数据库设计报告

摘要:本系统是宾馆客房管理系统,该报告主要介绍了数据库的设计,建立,主要功能的实现。数据库系统包括员工管理、客房管理、顾客管理几个大块。主要实现了登记功能,预订功能,多种方法查询顾客功能,查看客房状态功能,操作人员对系统的修改功能,以及结账报表功能。

一、需求分析

(1)具有方便的登记、结账功能,以及预订客房的功能,能够支持团体登记和团体结

账。

(2)能快速、准确地了解宾馆内的客房状态,以方便管理者决策。 (3)提供多种手段查询客人的信息。

(4)具备一定的维护手段,有一定权利的操作人员在密码的支持下才可以更改房价、

房间类型、增减客房。 (5)完善的结账报表系统。

二、E-R关系图

三、关系表

本系统有八个表,分别是职工信息表(staffinfo)、顾客信息表(custmerinfo)、经理信息表(managerinfo)、客房信息表(roominfo)、客房状态表(roomstatus)、入住表(checkin)、退房表(checkout)、结账订单表(orderinfo)。

1,职工信息表(staffinfo)

2,顾客信息表(custmerinfo)

3,经理信息表(managerinfo)

4,客房信息表(roominfo)

5,客房状态表(roomstatus)

6,入住表(checkin)

7,退房表(checkout)

8,结账订单表(orderinfo)

四、范式分析

本系统所有的表均为BCNF,职工和经理表由各自的工作编号为主码,并且可以决定其他所有属性,顾客表由身份证号做为主码,同理,客房的房间号可以决定其他所有属性。

五、功能分析 1,登记功能

本系统采用存储过程实现登记功能,顾客前来预订客房,由工作人员调

用存储过程向顾客表中插入该顾客信息,完成登记。

create procedure register

@身份证号 varchar(20),@姓名 varchar(10),@性别 char(5),@电话 char(15),

char(10)

as

insert into custmerinfo

values(@身份证号,@姓名,@性别,@电话,@员工编号)

@员工编号

2,预订功能

采用存储过程实现,由工作人员调用存储过程,在入住表中插入相应信

息,并且设计触发器,在预定的同时在客房状态表中修改客房状态为“已入住”。

create procedure or_der

create trigger tri_order on checkin for insert,update as

declare @房间号 char(10)

select @房间号=房间号 from inserted update roomstatus set 状态='已入住' where 房间号=@房间号

@身份证号 varchar(20),@房间号 char(10),@姓名 varchar(10),@入住时间 nchar(10) as

insert into checkin

values(@房间号,@身份证号,@姓名,@入住时间)

--预定的同时在客房状态表里修改状态

3,修改功能

当管理人员在密码的支持下,可以对数据库系统中房间的价格、类型、状态做适当修改。通过存储过程实现。

create procedure up_date1

@工作编号 char(10),@密码 varchar(10),@房间号 char(10),@价格 smallint as

if @密码=(select 密码 from managerinfo where 工作编号=@工作编号)

begin end

update roominfo set 价格=@价格 where 房间号=@房间号

create procedure up_date2

@工作编号 char(10),@密码 varchar(10),@房间号 char(10),@类型 varchar(10) as

if @密码=(select 密码 from managerinfo where 工作编号=@工作编号) begin end

update roominfo set 类型=@类型 where 房间号=@房间号

create procedure up_date3

@工作编号 char(10),@密码 varchar(10),@房间号 char(10),@状态 char(10) as

if @密码=(select 密码 from managerinfo where 工作编号=@工作编号) begin end

update roomstatus set 状态=@状态 where 房间号=@房间号

4,查询顾客信息

存储过程,实现可以通过客户的姓名、房间号查询到客户的信息。

--1.根据姓名查询

create procedure sel_roomnumber @房间号 char(10) --2.根据房间号查询 --调用

exec sel_name'lxt' create procedure sel_name @姓名 varchar(10) as

select * from custmerinfo where 姓名=@姓名

as

select custmerinfo.* from custmerinfo,room

where custmerinfo.身份证号=room.身份证号 and 房间号=@房间号

5,查看客房状态

设计函数,使得员工可以简单、快捷的查看当前客房的使用状态。

create function room_status()

returns table as

return select * from roomstatus

6,结账报表系统

采用触发器实现当一个顾客执行退房操作时,即往退房表中插入一条新的纪录时,触动触发器,往订单表中插入信息作为结账报表。

create trigger account --退房信息表里增加一条记录,则打印订单

on checkout after insert as

declare @房间号 char(10),@身份证号 varchar(10),@姓名 varchar(10),@退房时间 nchar(10)

declare @工作编号 char(10),@价格 smallint,@入住时间 nchar(10),@总金额 int,@天数 int

select @房间号=房间号 from inserted select @身份证号=身份证号 from inserted select @姓名=姓名 from inserted

select @工作编号=服务的员工编号 from custmerinfo where 身份证号=@身份证号 select @入住时间=入住时间 from checkin where 房间号=@房间号 select @价格=价格 from roominfo where 房间号=@房间号 select @天数=天数 from checkout where 房间号=@房间号 select @总金额=@天数*@价格 begin End

insert into orderinfo(身份证号,姓名,房间号,服务的员工编号,价格,入住时间,退 values(@身份证号,@姓名,@房间号,@工作编号,@价格,@入住时间,@退房时间,@总金额) 房时间,总金额)

六、总结

本系统主要采用存储过程、函数和触发器在后台实现了宾馆客房系统的基本功能,使得用户能够轻松的查找客房和客户的信息,实现一些必要的操作。

本文来源:https://www.bwwdw.com/article/oyz5.html

Top