引 言
随着全球经济一体化使酒店业客源更加丰富多样化,市场更加广阔多渠道的同时,酒店业更面临着日趋激烈的竞争环境和不断攀升的客户期望,迫使业内人士不断进一步寻求扩大酒店销售、改进服务质量、降低管理成本和提升客户满意度的新法宝来增强酒店的核心竞争力。其中最有效的手段之一就是大规模应用先进的信息化技术,变革传统意义上的酒店业竞争方式和经营管理模式以进而赢得新竞争优势,在这方面国际上领先的酒店业一直在不遗余力地探索、实施和推进。Internet作为全球性的计算机互联网,己深入到人们日常生活当中。现代计算机技术的巨大发展,使得酒店管理的方式发生了巨大得变化,就连酒店数据的储存方式也不再只拘泥于传统的方式。酒店管理系统是建立在分布式数据库上的,凡一切关于客户资料、客房资料和酒店资料的管理操作都是依靠分布式数据库来完成的。酒店管理系统主要管理操作包括:客户信息管理、客房管理以及对酒店资料管理等,它们是酒店管理系统的核心业务。
面对目前酒店发展的实际状况,我们通过调研,对宾馆客房管理系统的设计开发做了一个详细的概述。
宾馆客房管理系统
(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能。
(4)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息。
1.2功能要求
(3)客房相关信息的录入,包括房间号、收费标准、床位、类别等。
(6)住房信息的录入,包括房间号、客人姓名等。
(7)退房信息的更新。
1.3宾馆入住流程
客户可有三种需求分别为入住请求,续住请求及退房请求,将其发送给管理员,可对其需求分别给予不同的响应:入住请求,查询有无空房,若有,则进行入住登记,否则,返回客房已满,并将结果回馈给客户;续住请求,首先确认客房号,进行续住登记,并将结果返回给客户;退房请求,同样需要先进行确认客房号,进行退房登记,查询有无损坏物品,若有,调出物品赔偿单,再查询入住时间,否则,直接查询入住时间,最后进行结算,将结果返回给客户。可得其整体流程图,如下图1 客房管理业务流程图。
1.4系统功能
系统要处理的对象包括客户信息管理、客房信息管理、入住和退房管理、客房类型管理、费用管理、价目信息管理等6 个方面,各个对象包含的信息如下所示: (如下图2 系统的功能模块图)
(1)客户信息管理:可以新建客户,输入客户的身份证号码、姓名、性别和地址等信息,可以对于客户的信息进行相应的修改,还可以对客户的消费信息进行统计。
(2)客房信息管理:可以在相应的房间类型下面进行添加相应的房间,对相应的房间进行删除, 查看空房以及客房的情况。
(3)入住和退房管理:客户可以入住相应的房型下的空房,然后可以退房,系统自动将相应的订 单状态置为失效,入住状态置为已退房,将相应房间的状态置为空房。
(4)客房类型管理:管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房型,管理员、工作人员都可以查看相应的房型信息,管理员有需要时可以删除相应的房型系,统自动将 该房型下的房间删除。
(5)费用管理:管理员、工作人员都可以查看相应的费用信息,管理员有需要时可以对宾馆的收 入与支出进行查询或修改。
(6)价目信息管理:可以查看客房的收费标准,管理员可以对客房价格进行查询与修改,工作人 员可以查看价目信息。
数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义,很有助于改进分析员和用户的通信。数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
表 1 客户基本信息表customers
可否为空 |
|||
Cno |
客户编号 |
||
Cname |
客户姓名 |
||
Csex |
客户性别 |
||
Cid |
客户身份证号 |
属性名 |
完整性 |
||||
Rno |
Char(10) |
是 |
否 |
客房编号 |
|
char(10) |
否 |
否 |
客房档次 |
||
Int |
否 |
否 |
Null |
客房单价 |
|
否 |
否 |
Null |
客房状态 |
||
Rtel |
否 |
否 |
Null |
客房电话 |
属性名 |
是否是主属性 |
完整性 |
属性描述 |
||
是 |
否 |
Not null |
|||
Rno |
否 |
是 |
Not null |
物品的客房号 |
|
否 |
否 |
Not null |
|||
Int |
否 |
否 |
Null |
客房物品单价 |
|
否 |
否 |
Null |
客房物品状态 |
||
Int |
否 |
否 |
Null |
属性名 |
是否为主属性 |
是否为外键 |
完整性 |
属性描述 |
|
Cno |
Char(10) |
是 |
是 |
客户编号 |
|
Rno |
Char(10) |
是 |
是 |
客房编号 |
|
否 |
否 |
Not null |
入住日期 |
||
否 |
否 |
Not null |
|||
Ttime |
Int |
否 |
否 |
null |
入住时间 |
Tamount |
Int |
否 |
否 |
null |
房费金额 |
可否为空 |
|||
Ano |
Char(10) |
管理员编号 |
|
Aname |
Char(10) |
Not null |
管理员姓名 |
Char(10) |
Not null |
管理员职称 |
|
Char(20) |
Not null |
以下是分E-R图:
把系统的E-R图转换成数据库模式如下(下列关系模型中标有黄色钥匙状的为主码):
表10 管理员基本信息表administrators
客户 customers( Cno,Cname,Csex,Cid) 客房 Rooms( Rno,Rstyle,Rprice,Rstate,Rtel) 客户住宿 Living( Tno,Rno,Ccomedate,Cleftdate,Ctime,Camount) 客房物品 Roomitem(Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum) 宾馆管理员
Administrators(Ano,Aname,position,password)
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合的应用要求的物理结构的过程,就是数据库的物理设计。
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。其中,最常用的是索引法,本系统也采用的是索引法。我们在经常需要搜索的列和主关键字上建立了唯一索引。
由于不同PC机所安装的数据库软件位置不一定相同,所以数据文件与日志文件的存放位置也不一定相同。
5.数据库实施
5.1创建数据库
–创建数据库 宾馆客房管理系统
CREATE DATABASE hotel
GO
USE hotel
GO
5.2创建表
Csex char(2) Check(Csex in (‘男’,’女’)),
);
Rno char(20) not null PRIMARY KEY,
Rstyle char(10) not null,
Rstate char (10),
Rtel char(15)
);
Create table Roomitem(
Rno int not null,
Ritemname char(20) not null,
Ritemstate char(10),
Cno char(10) not null,
Rno char(10) not null,
Camount int,
Foreign key (Cno) references Customers(Cno),
Foreign key (Rno) references tb_Rooms(Rno)
);
Aname char(10) not null,
Aposition char(10) not null,
Apassword char(20) not null
);
1.创建视图
Create view view_Customers (客户编号,客户姓名,客户性别,客户身份证号)
Create view view_Rooms (客房号,客房类型,客房单价,客房状态,客房电话)
As select Rno, Rstyle, Rprice, Rstate, Rtel
Create view view_Living (客房编号,客房号,入住日期,结算日期,住宿时间,房费)
As select Cno,Rno,Ccomedate,Cleftdate,Ctime,Camount
Create view view_Roomitem(客房号,客房物品编号,客房物品名称,物品状态,客房物品单价,物品数量)As select Rno,Ritemno,Ritemname,Ritemstate,Ritemprice,Ritemnum
From Roomitem;
(5)查询管理员(Administrators)信息的视图定义如下。
Create view view_Administrators (管理员编号,管理员姓名,管理员职称)
Create view view_time (入住时间) as
select timediff(Cleftdate,Ccomedate) from living where Rno=’0001′
(7)可计算出总开销,损坏金额和入住时间的视图定义如下。
Create view view_zhangdan9 (入住时间, 损坏总额, 总开销) as
select timediff(Cleftdate,Ccomedate),Sum(Ritemprice),(rprice+Sum(Ritemprice)) from living natural join tb_rooms natural join roomitem where Ritemstate=’损坏’
2.建立索引
CREATE UNIQUE INDEX Custno ON Customers(Cno);
CREATE UNIQUE INDEX Roomno ON tb_Rooms(Rno);
CREATE UNIQUE INDEX Ritemno ON Roomitem(Ritemno);
CREATE UNIQUE INDEX Livno ON Living(Cno);
CREATE UNIQUE INDEX Admintno ON Administrators (Ano);
1.例如视图(1)view_Customers:
SQL语句:select 客户编号,客户姓名,客户性别,客户身份证号 from view_customers;
2.例如视图(7)view_zhangdan9:
SQL语句:select 入住时间, 损坏总额, 总开销 from view_zhangdan9;
结果:
+———-+———-+——–+
| 入住时间 | 损坏总额 | 总开销 |
+———-+———-+——–+
| 24:00:02 | 13 | 213 |
+———-+———-+——–+
SQL语句:select 客户编号,客户姓名,客户性别,客户身份证号 from view_Customers;
查询结果:
+———-+———-+———-+——————–+
| 客户编号 | 客户姓名 | 客户性别 | 客户身份证号 |
+———-+———-+———-+——————–+
| 1 | 竹 | 男 | 413026200004059317 |
| 2 | 京 | 女 | 41302620000405918 |
| 3 | 崔 | 男 | 413026200004059318 |
+———-+———-+———-+——————–+
4.可使用Delete语句删除表living中Rno=0001的数据:
Delete from living where Rno=’0001’;
5.可使用Update语句对customers表中的Cno=’1’的数据进行修改:
Update customers Set Cname=’ha’ where Cno=’1’;
6.可通过执行Insert…Set…语句增加一个记录对于customers表:
Insert customers set Cno=’4’,Cname=’x’,Csex=’女’,Cid=’43256952158632862’;
触发器 C1 的功能为当有一条信息插入Living 表中时,触发tb_rooms 表中的 Rstate=’满’。 代码如下:
set Rstate=’满’
触发器 C2 的功能为当从Living 表中删除一条信息时,触发tb_rooms表中的 Rstate=’空’。 代码如下:
update tb_Rooms
set Rstate=’空’
在设计的过程中,我也遇到了这样那样的问题,比如在添加触发器时,因new表和old表的,是navicat中的临时表,而不是inserted和deleted表,在网上查询了很多资料,试了很多次,也没能解决,后来经询问老师才得知,因此光凭一本书的知识是远远不够的,需要在实践中不断的积累经验与知识,才能够使所做系统更加完美。
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R 图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL 语言的灵活性,其中包括,插入、删除、 修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助。
限于我们的技术水平有限这次的课程设计论文和编程软件的错误和不当之处在所难免,还请老师多多指教!在这次的课程设计中时间紧迫但我们学会了很多,也感到自身知识的贫乏,希望在日后的努力学习中把它做成更完善的系统,并能做其他完善的系统,发现其中的乐趣。
[1]宋长龙,等.《基于互联网的数据库及程序设计》[M].清华大学出版社:北京市,2018.
[EB/OL].https://wenku.baidu.com/view/1e02399abf23482fb4daa58da0116c175e0e1eca,2020-03-04
原文地址:https://blog.csdn.net/zhu_xian_gang/article/details/122254288
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_40550.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!