大数据库项目 酒店管理系统.docx

上传人:b****6 文档编号:6941124 上传时间:2023-01-12 格式:DOCX 页数:29 大小:748.30KB
下载 相关 举报
大数据库项目 酒店管理系统.docx_第1页
第1页 / 共29页
大数据库项目 酒店管理系统.docx_第2页
第2页 / 共29页
大数据库项目 酒店管理系统.docx_第3页
第3页 / 共29页
大数据库项目 酒店管理系统.docx_第4页
第4页 / 共29页
大数据库项目 酒店管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

大数据库项目 酒店管理系统.docx

《大数据库项目 酒店管理系统.docx》由会员分享,可在线阅读,更多相关《大数据库项目 酒店管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

大数据库项目 酒店管理系统.docx

大数据库项目酒店管理系统

酒店管理系统

 

系别:

信息管理系

班级:

信息14005

江东流

学号:

1.需求描述

一家酒店有多个部门,每个部门拥有自己的部门号、名称、部门经理、办公地点和一定数量员工。

每个员工有员工号,,性别,年龄,工资,部门号,职务等属性。

每个顾客有顾客编号,,年龄,性别,号,级别等属性,号必须填写且唯一;根据累计消费等途径,将顾客分为不同的VIP等级,级别对应折扣级别。

酒店的客房有不同的种类可供选择,由唯一的客房号标识,位置记录每个房间的位置,状态表示此房间此时的状态,空闲、预约、有客等等。

相同类型的客房价格一样,每个类型的客房有一定的总量,可以查询剩余的数量以供选择。

酒店各部门还提供如KTV、网吧、洗衣等额外收费服务。

不同项目价格不同。

不同项目在不同地点进行。

酒店房间可以预约,每人每天只能预约一次,但可以多次更改之前的预约容。

付款时会产生唯一的款项编号,每一笔款项由一个员工进行处理,根据折扣级别给出应收款和实际收款。

2.概念结构设计

员工实体ER图

部门实体ER图

项目实体ER图

顾客实体ER图

客房实体ER图

类型实体ER图

款项实体ER图

折扣实体ER图

全局ER图

3.逻辑结构设计

员工(员工号,,性别,年龄,工资,部门号,职务,备注);

部门(部门号,名称,部门经理,办公地点,员工数量);

款项(款项编号,顾客号,员工号,时间,折扣级别,应收款,实际收款);

折扣(折扣级别,折扣情况);

项目(项目编号,项目名称,部门号,所在位置,收费标准);

选择(顾客号,项目号,发生时间,备注);

顾客(顾客编号,,年龄,性别,号,级别,备注);

客房(客房号,类型编号,位置,状态,备注);

类型(类型编号,类型名称,费用,总量,剩余量);

预约(顾客号,客房号,预约时间,备注)

住宿(顾客号,客房号,入住时间,离开时间);

员工表:

列名

数据类型

约束条件

员工号

Char(10)

主码

Char(10)

非空

性别

Char

(2)

非空

年龄

Int

工资

Int

部门号

Char(10)

外码,参照部门表中的部门号

职务

Char(10)

备注

Varchar(100)

部门表:

列名

数据类型

约束条件

部门号

Char(10)

主码

名称

Char(20)

非空

部门经理

Char(10)

外码,参照员工表中的

办公地点

Char(10)

员工数量

Int

大于等于0

款项表:

列名

数据类型

约束条件

款项编号

Char(10)

主码

顾客号

Char(10)

外码,参照顾客表的顾客号

员工号

Char(10)

外码,参照员工表的员工号

时间

Datetime

折扣级别

Int

外码,参照折扣表的折扣级别

应收款

Dec(6,2)

非空

实际收款

Dec(6,2)

非空

折扣表:

列名

数据类型

约束条件

折扣级别

Int

主码

折扣情况

Dec(3,2)

项目表:

列名

数据类型

约束条件

项目编号

Char(10)

主码

项目名称

Char(10)

非空

部门号

Char(10)

外码,参照部门表的部门号

所在位置

Char(10)

收费标准

Int

大于等于0

选择表:

列名

数据类型

约束条件

顾客号

Char(10)

联合主码;外码,参照顾客表的顾客号

项目号

Char(10)

联合主码;外码,参照项目表的项目编号

发生时间

Datetime

联合主码

备注

Varchar(100)

顾客表:

列名

数据类型

约束条件

顾客编号

Char(10)

主码

Char(10)

非空

年龄

Char

(2)

性别

Char

(2)

非空

Char(18)

非空;唯一

级别

Int

备注

Varchar(100)

客房表:

列名

数据类型

约束条件

客房号

Char(10)

主码

类型编号

Char(10)

外码,参照类型表的类型编号

位置

Char(10)

非空,唯一

状态

Char(4)

备注

Varchar(100)

类型表:

列名

数据类型

约束条件

类型编号

Char(10)

主码

类型名称

Char(10)

非空

费用

Dec(6,2)

大于等于0

总量

Int

大于等于0

剩余量

Int

大于等于0

预约表:

列名

数据类型

约束条件

顾客号

Char(10)

联合主码;外码,参照顾客表的顾客号

客房号

Char(10)

联合主码;外码,参照客房表的客房号

预约时间

Datetime

联合主码

备注

Varchar(100)

住宿表:

列名

数据类型

约束条件

顾客号

Char(10)

联合主码;外码,参照顾客表的顾客号

客房号

Char(10)

联合主码;外码,参照客房表的客房号

入住时间

Datetime

联合主码

离开时间

Datetime

4.物理设计

员工会经常查询自己的工资,在员工表的(工资)创建索引;

顾客每次付款时都会要查询具体的折扣详情,在折扣表的(折扣详情)创建索引;

顾客选择项目时只会给出项目名称,所以需要经常查询项目名称,在项目表的(项目名称)创建索引;

每位顾客消费时会给出,所以经常需要查询对应的顾客号,在顾客表的(号)创建索引;

顾客住宿时会给出自己想要的客房类型的名称,所以要经常查询类型名称对应的类型号,在类型表的(类型名称)创建索引;

 

SQL语句

createuniqueindexidx_工资on员工(工资)

createuniqueindexidx_折扣详情on折扣(折扣详情)

createuniqueindexidx_项目名称on项目(项目名称)

createuniqueindexidx_号on顾客(号)

createuniqueindexidx_类型名称on类型(类型名称)

 

5.数据库实施

--创建数据库

createdatabase酒店管理系统

go

use酒店管理系统

go

--创建表

--创建部门表

createtable部门(

部门号char(10)primarykey,

名称char(10)notnull,

部门经理char(10),

办公地点char(10),

员工数量intcheck(员工数量>=0),

go

--创建员工表

createtable员工(

员工号char(10)primarykey,

char(10)notnull,

性别char

(2)notnull,

年龄int,

工资int,

部门号char(10),

职务char(10),

备注varchar(100),

foreignkey(部门号)references部门(部门号)

go

--创建顾客表

createtable顾客(

顾客号char(10)primarykey,

char(10)notnull,

年龄char

(2),

性别char

(2)notnull,

号char(18)notnullunique,

级别int,

备注varchar(100)

go

--创建类型表

createtable类型(

类型编号char(10)primarykey,

类型名称char(10)notnull,

费用dec(6,2)check(费用>=0),

总量intcheck(总量>=0),

剩余量intcheck(剩余量>=0)

go

--创建客房表

createtable客房(

客房号char(10)primarykey,

类型编号char(10),

位置char(10)notnullunique,

状态char(4),

备注varchar(100),

foreignkey(类型编号)references类型(类型编号)

go

--折扣表

createtable折扣(

折扣级别intprimarykey,

折扣详情dec(3,2)

go

--创建款项表

createtable款项(

款项编号char(10)primarykey,

顾客号char(10),

员工号char(10),

时间datetime,

折扣级别int,

应收款dec(6,2)notnull,

实际收款dec(6,2)notnull,

foreignkey(顾客号)references顾客(顾客号),

foreignkey(员工号)references员工(员工号),

foreignkey(折扣级别)references折扣(折扣级别)

go

--创建项目表

createtable项目(

项目编号char(10)primarykey,

项目名称char(10)notnull,

部门号char(10),

所在位置char(10),

收费标准intcheck(收费标准>=0),

foreignkey(部门号)references部门(部门号)

go

--创建选择表

createtable选择(

顾客号char(10),

项目号char(10),

发生时间datetime,

备注varchar(100),

primarykey(顾客号,项目号,发生时间),

foreignkey(顾客号)references顾客(顾客号),

foreignkey(项目号)references项目(项目编号)

go

--创建预约表

createtable预约(

顾客号char(10),

客房号char(10),

预约时间datetime,

备注varchar(100),

primarykey(顾客号,客房号,预约时间),

foreignkey(顾客号)references顾客(顾客号),

foreignkey(客房号)references客房(客房号)

go

--创建住宿表

createtable住宿(

顾客号char(10),

客房号char(10),

入住时间datetime,

离开时间datetime,

primarykey(顾客号,客房号,入住时间),

foreignkey(顾客号)references顾客(顾客号),

foreignkey(客房号)references客房(客房号)

6.数据库运行

添加部门数据:

('bm001','客房部','吴庆宇','B201',20)

('bm002','餐饮部','啸','A103',10)

('bm003','娱乐部','胡展鹏','A401',20)

添加员工数据:

('yg1001','吴庆宇','男',30,4000,'bm001','部门经理','')

('yg1002','徐博雅','女',26,2700,'bm001','普通员工','')

('yg2001','啸','男',30,3500,'bm002','部门经理','')

('yg2002','穆标','男',26,2000,'bm002','普通员工','学徒')

('yg3001','胡展鹏','男',31,4000,'bm003','部门经理','')

('yg3002','戚倩倩','女',25,3000,'bm003','普通员工','休假中')

添加顾客数据:

('gk00001','董炎鑫',24,'男','5',3,'')

('gk00002','伦',20,'女','',1,'')

('gk00003','德军',31,'男','1',1,'')

('gk00004','秀春',41,'女','3',2,'')

添加类型数据:

('lx001','普通双人间',130,50,20)

('lx002','网络单人间',100,30,13)

('lx003','大床房',150,50,36)

('lx004','豪华套间',420,20,14)

添加客房数据:

('kf001','lx001','B101','空闲','')

('kf002','lx001','B102','有客','')

('kf003','lx002','B201','空闲','')

('kf004','lx003','B305','空闲','维修中')

('kf005','lx004','B404','有客','')

添加折扣数据:

(1,0.98)

(2,0.9)

(3,0.8)

添加项目数据:

('xm001','网吧','bm003','A206',3)

('xm002','KTV','bm003','A501',90)

('xm003','洗衣','bm001','B105',10)

款项、选择、预约数据随业务的进行由员工添加

 

模拟业务

实例1:

新客户慧预约kf003号客房(慧,女,20岁,6)

insertinto顾客values(‘gk00005’,’慧’,20,’女’,’6’,1,’’)go

insertinto预约values(‘gk00005’,’kf003’,’2015-12-06’,’’)

update客房set状态=’预约’where客房号=’kf003’

实例2:

员工徐博雅离职,删除其员工数据

deletefrom员工where=’徐博雅’

实例3:

查询年龄小于等于30岁的男性顾客的、号

select,号

from顾客

where性别=’男’and年龄<=30

实例4:

顾客伦选择KTV项目(伦,)

insertinto选择select顾客号,项目编号,'2015-12-1',''

from顾客,项目

where号=''and项目名称='KTV'

go

select*

from选择

where顾客号=(select顾客号from顾客where号='')

and项目号=(select项目编号from项目where项目名称='KTV')

and发生时间='2015-12-1'

实例5:

即实例4之后,伦结账付款,由员工戚倩倩处理

insertinto款项select‘kx00001’,顾客号,员工号,'2015-12-1',折扣级别,收费标准,收费标准*折扣详情

from顾客,项目,员工,折扣

where号=''and项目名称='KTV'and员工.=’戚倩倩’and级别=折扣级别

go

select*

from款项

where款项编号='kx00001'

7.数据库安全性

数据库管理员以Windows身份验证登录,不再另外创建登录名

为员工、经理和顾客分别创建一个登录名,例如:

为员工、经理和顾客分别创建一个用户,对应登录名,例如:

授予权限

授予顾客,对项目表和类型表的查询权限

grantselecton项目to顾客

grantselecton类型to顾客

授予员工,对员工表的查、对款项表的增查、对选择表、顾客表、客房表、预约表、住宿表的增删改查、对类型表的改查权限

grantselecton员工to员工

grantinsert,selecton款项to员工

grantinsert,delete,update,selecton选择to员工

grantinsert,delete,update,selecton顾客to员工

grantinsert,delete,update,selecton客房to员工

grantinsert,delete,update,selecton预约to员工

grantinsert,delete,update,selecton住宿to员工

grantupdate,selecton类型to员工

授予经理,对员工表的增删改查、对部门表增删改查、对项目表的增删改查权限

grantinsert,delete,update,selecton员工to经理

grantinsert,delete,update,selecton部门to经理

grantinsert,delete,update,selecton项目to经理

8.数据库备份计划

每周日24点一次完整备份,每天24点一次差异备份,每两小时一次事务日志备份

首先执行一次完整备份,否则接下来到周日的数据无法进行备份:

在创建一个“清除维护”任务,删除时间超过一个月的备份文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1