《宾馆管理系统课程设计作业.doc》由会员分享,可在线阅读,更多相关《宾馆管理系统课程设计作业.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 管理信息系统课程设计 宾馆管理系统一、摘要为方便小投资的宾馆能更好管理顾客与客房,客房与宾馆,宾馆与员工等之间的关系,顺应需要设计了这种宾馆客房信息管理系统,由于编写功能的不够强大,可能在真实应用会存在些许问题二、需求分析随着外出人流因为生活,商业等方面的增多,宾馆的发展也日益的迅猛,由于顾客量的增多,客户登记时间的广泛,宾馆收益的日益增多,仅仅依靠手写的老式输入记账法,是无法满足宾馆的需求的,同时这也是浪费人力和时间的。开发这个数据库,目的就在于能够更好的对客房的预订情况,空余情况,顾客信息,顾客住宿时间和所用费用,客房房态等进行精确的查询,以便更好的完善和更新宾馆信息系统。数据库的概念结
2、构设计三、数据库概念结构设计3.1功能模块分析根据宾馆的具体情况,系统主要功能如下:(1)住宿管理模块:包括客房预订、入住登记、客人续往、调房登记、退房结账5部分。(2).客房管理模块:包括客房设置、客房查询、宿费提醒3部分。(3)查询统计模块:包括预订房查询、住宿查询、退房查询、客房宿费统计4部分。(4)报表管理模块:包括预售报表、客房销售报表2部分。(5)挂账管理模块:包括客户管理、挂账查询、客户结账3部分。(6)系统设置模块:包括系统初始化、权限管理、密码设置3部分。3.2功能结构图如下3.3宾馆客房信息管理流程图3.4ER图四、数据库的逻辑结构设计4.1用数据库建表并完成数据的完整性1
3、宾馆基本信息表。列名数据类型长度允许空说明单位名称varchar50Not null宾馆的注册名称邮政编码varchar6Not null所在省市的邮编电话varchar15Not null前台工作电话传真varchar15Null宾馆的传真网址varchar30Null宾馆网页网址电子邮箱varchar30Null宾馆邮箱数据完整性:建立单位名称为主键2部门基本信息表。记录宾馆的各个部门,更好的分配和了解情况。列名数据类型长度允许空说明部门编号Varchar10Not null宾馆部门的专有编号部门名称Varchar25Null依部门职责的命名部门电话Varchar15Not null联系电
4、话部门负责人Varchar10Not null部门主要负责人数据完整性:以部门编号为主键3员工信息表列名数据类型长度允许空说明员工编号Varchar10Not null宾馆统一规划的员工编号员工姓名Varchar10Null姓名员工性别Char2Null男或女出生日期Datetime8Not null员工出生日期以便得知工龄员工证件号Varchar20Not null员工的有效证件员工电话Varchar15Not null员工的联系方式部门编号Varchar25Not null部门所属职务Varchar25Not null担任的职务聘用日期Datetime8Not null聘用的日期月薪Dec
5、imal10Not null月薪备注Text16Null有关健康,婚姻,工作态度等描述数据完整性:建立员工编号为主键建立CK_员工信息表:员工性别=男 or 员工性别=女创建FK_员工信息表_部门基本信息表以“部门编号”为外键4客房设备信息。记录客房的标准信息,为客房内设备的添加,房态的调节,客房的预定提供查询。列名数据类型长度允许空说明客房编号Varchar10Not null宾馆统一安排的客房编号客房类型Varchar25Not null普通房,标准房,贵宾房客房单价Money8Not null价格床位数量Varchar5Not null床位数目空调Bit 1Not null0表示无,1表
6、示有电视Bit1Not null0表示无,1表示有音响设备Varchar50Not null无,普通,高级房间数目Varchar10Not null客房类型的数目免费网络和电话Bit1Not null免费网络和宾馆内的免费电话独立浴室Bit1Not null0表示无,1表示有客房位置Varchar40Not null0表示无,1表示有预定情况Bit 1Not null预定,空余备注Text16Null 客房设备信息的补充数据完整性:建立客房编号为主键5客房预订信息表。列名数据类型长度允许空说明预定编号Varchar10Not null预定单的编号顾客姓名Varchar10Null 顾客姓名顾客
7、证件号Varchar20Not null身份证或有效证件客房编号Varchar10Not null客房的编号订房日期Datetime8Not null订房日期预订金Money8Not null押金折扣Decimal9Not null会员折扣或宾馆活动支付方式Varchar10Not null信用卡,现金备注Test16Null 预定情况信息的补充操作员Varchar10Not null操作员的员工编号数据完整性:建立预订编号为主键FK_客房预订信息表_员工信息表以“员工编号”“操作员”为外键FK_客房预订信息表_顾客信息表以“顾客证件号”为外键FK_客房预订信息表_客房设备信息表以“客房编号”
8、为外键6结算信息表。列名数据类型长度允许空说明结算编号Varchar10Not null结算单的编号客房编号Varchar 10Not null宾馆统一安排的客房编号客房类型Varchar 25Null 普通房,标准房,贵宾房顾客姓名Varchar 10Null 顾客姓名顾客证件号Varchar 20Not null身份证或有效证件订房日期Datetime 8Not null订房日期退房日期Datetime 8Not null退房日期消费金额Money8Not null消费金额折扣Decimal 9Not null会员折扣或宾馆活动支付方式Varchar 10Not null信用卡,现金备注T
9、est 16Null 结算信息的补充操作员Varchar 10Not null操作员的员工编号数据完整性:建立以结算编号为主键FK_结算信息表_员工信息表以“操作员”“员工编号”为外键FK_结算信息表_顾客信息表以“顾客证件号”为外键FK_结算信息表_客房设备信息表以“客房编号”为外键7顾客信息表列名数据类型长度允许空说明顾客姓名Varchar10Null 顾客名称顾客证件号Varchar20Not null身份证或有效证件顾客性别Char 2Null 男或女顾客生日Datetime 8Null 方便宾馆为其在生日当天优惠顾客电话Varchar15Null 联系顾客顾客邮箱Varchar30N
10、ull 顾客邮箱顾客级别Varchar30Not null普通,会员,高级会员数据完整性:建立以顾客证件号为主键建立CK_顾客信息表:顾客性别=男 or 顾客性别=女4.2建表的脚本语句1、宾馆信息表CREATE TABLE dbo.宾馆基本信息表 (单位名称 varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,邮政编码 varchar (6) COLLATE Chinese_PRC_CI_AS NOT NULL ,电话 varchar (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,传真 varchar (15)
11、 COLLATE Chinese_PRC_CI_AS NULL ,网址 varchar (30) COLLATE Chinese_PRC_CI_AS NULL ,电子邮箱 varchar (30) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGO2、部门基本信息表CREATE TABLE dbo.部门基本信息表 (部门编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,部门名称 varchar (25) COLLATE Chinese_PRC_CI_AS NULL ,部门电话 varchar (15)
12、 COLLATE Chinese_PRC_CI_AS NOT NULL ,部门负责人 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGO3、员工信息表CREATE TABLE dbo.员工信息表 (员工编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,员工姓名 varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,员工性别 char (2) COLLATE Chinese_PRC_CI_AS NULL ,出生日期 datetime
13、NOT NULL ,员工证件号 varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,员工电话 varchar (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,部门编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,职务 varchar (25) COLLATE Chinese_PRC_CI_AS NOT NULL ,聘用日期 datetime NOT NULL ,月薪 decimal(18, 0) NOT NULL ,备注 text COLLATE Chinese
14、_PRC_CI_AS NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGO4、客房设备信息表CREATE TABLE dbo.客房设备信息表 (客房编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,客房类型 varchar (25) COLLATE Chinese_PRC_CI_AS NOT NULL ,客房单价 money NOT NULL ,床位数量 varchar (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,空调 bit NOT NULL ,电视 bit NOT NULL
15、 ,音响设备 varchar (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,房间数目 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,免费网络和电话 bit NOT NULL ,独立浴室 bit NOT NULL ,客房位置 varchar (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,预订情况 bit NOT NULL ,备注 text COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGO5、
16、客房预订信息表CREATE TABLE dbo.客房预订信息表 (预订编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,顾客姓名 varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,顾客证件号 varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,客房编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,订房日期 datetime NOT NULL ,预订金 money NOT NULL ,折扣 decimal
17、(18, 0) NOT NULL ,支付方式 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,备注 text COLLATE Chinese_PRC_CI_AS NULL ,操作员 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGO6、结算信息表CREATE TABLE dbo.结算信息表 (结算编号 varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,客房编号 varchar (10
18、) COLLATE Chinese_PRC_CI_AS NULL ,客房类型 varchar (25) COLLATE Chinese_PRC_CI_AS NULL ,顾客姓名 varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,顾客证件号 varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,订房日期 datetime NULL ,退房日期 datetime NULL ,消费金额 money NULL ,折扣 decimal(18, 0) NULL ,支付方式 varchar (10) COLLATE Chinese_
19、PRC_CI_AS NULL ,备注 text COLLATE Chinese_PRC_CI_AS NULL ,员工编号 varchar (10) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY TEXTIMAGE_ON PRIMARYGO7、顾客信息表CREATE TABLE dbo.顾客信息表 (顾客姓名 varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,顾客证件号 varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,顾客性别 char (2) COLLATE Ch
20、inese_PRC_CI_AS NULL ,顾客生日 datetime NULL ,顾客邮箱 varchar (30) COLLATE Chinese_PRC_CI_AS NULL ,顾客级别 varchar (30) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGO4.3数据输入1宾馆信息表2部门基本信息表3员工信息表4客房设备信息表5客房预订信息表6结算信息表7顾客信息表五、功能的实现5.1视图的创建1创建视图,只检索“订房日期”为20090109的所有顾客信息以及其预订的客房方态SELECT dbo.客房预订信息表.客房编号, dbo.顾
21、客信息表.顾客证件号, dbo.顾客信息表.顾客姓名, dbo.客房预订信息表.预订编号, dbo.客房预订信息表.订房日期, dbo.客房设备信息表.客房类型, dbo.客房设备信息表.客房单价FROM dbo.顾客信息表 INNER JOIN dbo.客房预订信息表 ON dbo.顾客信息表.顾客证件号 = dbo.客房预订信息表.顾客证件号 INNER JOIN dbo.客房设备信息表 ON dbo.客房预订信息表.客房编号 = dbo.客房设备信息表.客房编号 WHERE (dbo.客房预订信息表.订房日期 = 2009-01-12)2创建视图,只检索客房类型为普通单人间的且已预订的客
22、房及顾客信息SELECT dbo.客房设备信息表.客房编号 AS Expr2, dbo.客房设备信息表.客房类型 AS Expr3, dbo.客房设备信息表.客房单价 AS Expr4, dbo.客房设备信息表.预订情况 AS Expr5, dbo.顾客信息表.顾客证件号, dbo.顾客信息表.顾客姓名, dbo.顾客信息表.顾客级别FROM dbo.顾客信息表 CROSS JOIN dbo.客房设备信息表WHERE (dbo.客房设备信息表.客房类型 = 普通单人间) AND (dbo.客房设备信息表.预订情况 = 1)5.2存储过程的建立1为了促进消费者消费,创建将客房类型为贵宾房的客房单
23、价进行减价9.5折处理的存储过程,创建语句如下:CREATE PROCEDURE discount ASupdate 客房设备信息表 set 客房单价=客房单价*0.95 where 客房类型=贵宾房GO2为了促进员工的工作积极性可以给员工增加薪水创建语句为:CREATE PROCEDURE wageincrease ASupdate 员工信息表 set 月薪=(月薪*0.01+月薪) Go5.3触发器的建立定义一个触发器“编号更新”,当客房设备信息表中的客房编号更新时,将客房预订表和结算信息表中的客房编号也同时更新。CREATE TRIGGER 编号更新 ON dbo.客房设备信息表 aft
24、er UPDATE ASif update(客房编号)begindeclare hotel_id as varchar(10)declare old_hotel_id as varchar(10)select hotel_id=客房编号 from insertedselect old_hotel_id=客房编号 from deletedupdate 客房预订信息表set 客房预订信息表.客房编号=hotel_id where 客房预订信息表.客房编号=old_hotel_idupdate 结算信息表set 结算信息表.客房编号=hotel_id where 结算信息表.客房编号=old_hotel_idEnd六、实验小结在这连续几天里的数据库应用设计中比起之前课程中的数据库有了更深的了解。从一开始的需求分析到概念结构设计经历了许多次的修改,终于明白实体与实体之间该如何找到关系,再解决好需求分析和概念结构设计之后就显得容易了。表格的设计要考虑到其属性的数据类型和长度,为了使得数据更具有操作性还要求完整性的设计,其中外键的设计必须是数据类型和长度相同的。视图实际上就是联系多个表数据的虚拟的表,而存储过程就是编译的T-SQL语句存储在一个名称下的通过命令调用的重复使用。比较难的是触发器的建立,其中使用了deleted和inserted表,且在需要用户自己编辑SQL语句也相应难些。