{$cfg_webname}
主页 > 计算机 > 论文 >

(数据库课程设计)客房管理系统毕业设计论文(3)

来源:56doc.com  资料编号:5D4016 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D4016
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

2.5 数据库实施阶段
2.5.1 建立数据库
用SQL语句建立数据库,具体定义如下:
 create database hotel
2.5.2 建立数据表
用SQL语句建立数据表,具体定义如下:
 create table customer
 (Cno char(10),
  Cname char(10),
  Cage int,
  Csex char(2),
  IDno char(18),
 primary key(Cno)
 
 )


create table room
 (Rno char(10),
  Rtype char(10),
  Rstatus char(4),
  Rprice int,
  primary key(Rno)
 
 )


create table information
 (Cname char(10),
  Rno char(10),
  IDno char(18),
  Thedate datetime,
  days int
  primary key(Cname,Rno)
 )


create table checkout
 (Cno char(10),
  Rno char(10),
 primary key(Cno)
 )


create table menu
 (Sname char(10),
  Sprice int,
 primary key(Sname)
 )


create table service
 (Rno char(10),
  Sname char(10),
  Samount int,
  primary key(Rno,Sname)
 
 )
2.5.3 数据库入库
 本次数据采用Excel表导入的方法导入数据。数据导入后基本表如下所示:

1. 基本表—customer
 

2. 基本表 room。

3. 基本表 menu。

4. 基本表 information。
 
5. 基本表 service

6. 基本表checkout

2.6 调试与测试
2.6.1 触发器定义
定义房间信息在有人入住之后更新的触发器
create trigger in_status
on information
after insert,update
as
declare @Rno char(10)
select @Rno = Rno
from inserted
update room
set Rstatus = '满'
where room.Rno = @Rno

定义房间信息在有人退房之后更新的触发器
create trigger out_status
on checkout
after insert,update
as
declare @Rno char(10)
select @Rno = Rno
from inserted
update room
set Rstatus = '空'
where room.Rno = @Rno
2.6.2 视图的定义
建立空房间信息视图

create view view_eroom
as
select *
from room
where Rstatus = '空'

 


建立满房间视图
create view view_froom
as
select *
from room
where Rstatus = '满'

 
建立客房所有顾客应缴纳的房间费用视图
create view view_roomcost(Cname,rcost)
as
select information.Cname,Rprice*Days
from room,information
where room.Rno in
 (select Rno
 from information
 ) and information.Rno=room.Rno

 


建立所有顾客应缴纳服务费用的视图

create view view_servicecost(Rno,cost)
as
select service.Rno,sum(Samount*Sprice)
from menu,service
where menu.Sname=service.Sname
group by service.Rno

建立顾客应缴纳的总费用的视图

create view view_allcost(Rno,allcost)
as
select view_servicecost.Rno,cost+Rprice*Days
from view_servicecost,room,information
where view_servicecost.Rno=room.Rno and room.Rno = information.Rno
 

2.6.3 存储过程定义
建立查询某个房间信息的存储过程
create procedure  roominf
@Rno char(10)
as
select *
from room
where Rno = @Rno

roominf '101'


建立查询某个房间价格的信息的存储过程

create procedure priceinf
@pRno char(10)
as
select Rprice
from room
where Rno = @pRno

priceinf '101'


建立某个房间状态的存储过程

create procedure statusinf
@sRno char(10)
as
select Rstatus
from room
where Rno= @sRno

 

 

某个客人入住,建立存储过程更新房间信息
create procedure updateinf
@P_Cname char(10),
@P_Rno char(10),
@P_IDno char (18),
@P_Thedate datetime,
@P_Days int
as
insert into information
values(@P_Cname,@P_Rno,@P_IDno,@P_Thedate,@P_Days)
2.6.4 数据操纵验证
数据操纵验证见附录
3 收获与体会
经历了两周的数据库课程设计,我从开始只知道写几句SQL语句到对数据库设计有了一个全新的认识,从理论上升到了实践的高度,收获颇丰。
 在实习的过程当中,我遇到了很多问题,特别是在开始需求分析阶段,觉得什么也不会做,什么也不知道去做。后来在网上了解到了好多关于客房管理的知识,对数据库设计也有了一定的了解,在自己的努力下和老师悉心教导了下,我学到了课堂上学不到的很多东西,虽然也被老师批评过,但是批评之后,我对知识的记忆将更加深刻。
 从中我知道了,只要我们不畏艰辛,坚持不懈,我们能做到很多不敢想不敢做的事情,经历风雨,就是彩虹!
4 存在的问题与建议
4.1 存在问题
1. 对书本知识不熟悉,课程设计过程当中需要不断的查阅课本,这样造成了时间的浪费。
2. 对SQL Server 2000 操作不熟悉,导致导入数据是经常出错,造成了一些不必要的麻烦,应该提高操作熟练程度。

推荐资料