酒店客房管理系统数据库的设计与实现

时间:2022-04-24 04:29:52

酒店客房管理系统数据库的设计与实现

摘要:该文主要介绍了酒店客房管理系统数据库设计与实现过程。数据库系统主要功能模块包括员工信息管理、客房类别管理、客房业务管理、顾客查询管理、客房经营管理、客户信息查询、经营状况统计等。

关键词:数据库;信息管理;客房类型管理;客房经营管理;客户信息查询;SQL Server;数据库建模

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)13-2953-03

1功能模块

本酒店客房管理系统的主要包括对酒店的客房进行管理,使使用者能够轻松地找到所需要的客房的相关信息,为客房订房和退房服务,并且能够对酒店客房的业绩进行统计和分析。图1是酒店客房管理系统的界面。

图1酒店客房管理系统界面

在不同的酒店之间,酒店客房管理系统会存在一些差异。本酒店客房管理系统的主要功能包括以下几个方面。

1)员工信息管理:对本使用该系统员工信息进行管理,其中包括对员工的各项信息(如姓名、部门等)进行检索、录入和修改等。

2)客房类别管理:用户可自定义客房等级,并对其进行管理,包括对客房等级级的基本信息进行检索、录入和修改。

3)客房信息管理:员工对客房信息进行管理,包括对客房的基本信息(房间号、客房类别等)进行查找、录入和修改等。

4)客房业务管理:实现对客房的订房和退房管理,包括对客房的业务信息(房间号、入住时间、退房时间等)进行检索、修改等。

5)顾客查询管理:员工可对入住过酒店的顾客信息进行查询,包括对顾客的基本信息进行查询。

6)经营业务统计:根据酒店客房的入住记录,员工可选择所需的统计方式对营业额进行统计。

本系统从功能内容来看,可分为六大功能。根据这六大功能,对系统模块进行设计,如图2所示。

图2系统模块示意图

2实现方法

该系统采用B/S方式,由前台和后台两个部分组成。前台主要完成操作者直接交互的可视化界面,使用方便,将本系统的各个功能直观的提供给用户,以帮助员工进行客房管理。前台的结构图如图3所示。

图3前台结构图

在编写前台时要考虑功能实现的同时,也考虑了操作的方便性和简洁性,目的是让大多数使用者能够更方便灵活的操作该系统。

同时为了确保职工信息和酒店内部的其他相关信息具有更好的保密性,前台和后台的数据管理理是分离的。前台的几大功能模块需要经过管理者授权才可以使用,我们为此设计了两个角色:一是酒店管理员,二是普通员工。其中:酒店管理员享有所有权限,可以使用该系统中六大模块中的各部分功能。

前台员工的主要职能是负责订房和退房,以及查询入住的客户信息。所有该角色只可以使用部分功能。

后台管理主要功能是由数据库系统作为支持,后台管理和维护工作由系统管理员进行,包括完成对数据库的备份,各个数据表单的维护、及恢复等。

3 E-R图的建立与分析

表与字段的分析是建立在E-R图的基础上的,我们可以通过E-R图最后确定该系统中所有用到的表与字段的相关属性。表与字段分析后就可以使用SQL Server 2003建立数据库模型了。建立的数据库模型如图4所示。

4数据库表的实现

首先对数据库进行分析,然后对数据库进行设计。在该系统中,数据库的设计内容主要包括建立数据库创建表,还需设计相关的视图及存储过程。这些设计工作都在SQL Server 2003环境下操作并实现。

1)数据库表的创建过程

数据库JdglSys包含以下7个表:用户信息表(UsersInfo)、客户信息表(CustomersInfo)、客房类型表(RoomCategory)、客房信息表(RoomsInfo)、客房状态表(RoomStatus)、客房业务表(RoomOperation)、业务记录表(History)。

图4数据库模型

创建用户信息表(UsersInfo)的脚本文件如下:

CREATE TABLE [dbo].[UsersInfo] (

[UserId] [int] NOT NULL ,

[Name] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

[Password] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

[Gender] [int] NULL ,

[Email] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

[Address] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

[Telephone] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

[Department] [varchar] (40) COLLATE Chinese_PRC_CI_AS NULL ,

) ON [PRIMARY]

其余表以次创建

2)创建存储过程

在酒店客房管理系统运行过程中,该系统会在数据库中频繁查找或更新各种相关信息,比如,向客房信息表(RoomsInfo)中插入或删除新的客房信息,根据客房类型和状态查找客房信息,记录订房或退房信息等操作。为了提高系统的运行效率,我们创建了12个存储过程。部分存储过程的SQL代码如下。

(1)存储过程sp_ValidateUser用于系统在用户登录时验证该用户身份的有效性。如果该用户身份有效,返回该用户的用户类型。

CREATE PROCEDURE sp_ValidateUser(

@name nvarchar(20), @pwd nvarchar(15) ,

@IsValid Int output,@type Int output)

AS

if (select count(Type) from UsersInfo where Name=@name and Password=@pwd ) =1

begin

-- @type用于记录该用户的用户类型

select @type=Type from UsersInfo where Name=@name and Password=@pwd

--该用户身份有效,@IsValid置为1

select @IsValid = 1

end

else

--该用户身份无效,@IsValid置为0

select @IsValid = 0

(2)存储过程sp_Insert用于员工添加新的房间信息时,系统会向表中录入该房间的信息。

CREATE PROCEDURE sp_Insert (

@RoomId int,@RCategoryId int,

@RPosition nvarchar(50),@Description nvarchar(50))

AS

--向表RoomsInfo中插入新的客房信息

insert into RoomsInfo values(

@RoomId,@RCategoryId,@RPosition,@Description)

--向表RoomStatus中插入新信息,并将该客房状态置为1(空房)

insert into RoomStatus values(

@RoomId,1)

我们将在应用程序中调用这些存储过程,完成添加新的客房信息、根据客房类型和状态查找客房信息、订房或退房等工作。

上一篇:高等农业院校C程序设计教学模式研究 下一篇:基于Web挖掘的关键词建议模型研究