数据库项目酒店管理系统文档格式.docx
《数据库项目酒店管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库项目酒店管理系统文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
选择(顾客号,项目号,发生时间,备注);
顾客(顾客编号,姓名,年龄,性别,身份证号,级别,备注);
客房(客房号,类型编号,位置,状态,备注);
类型(类型编号,类型名称,费用,总量,剩余量);
预约(顾客号,客房号,预约时间,备注)
住宿(顾客号,客房号,入住时间,离开时间);
员工表:
列名
数据类型
约束条件
员工号
Char(10)
主码
姓名
非空
性别
Char
(2)
年龄
Int
工资
部门号
外码,参照部门表中的部门号
职务
备注
Varchar(100)
部门表:
名称
Char(20)
部门经理
外码,参照员工表中的姓名
办公地点
员工数量
大于等于0
款项表:
款项编号
顾客号
外码,参照顾客表的顾客号
外码,参照员工表的员工号
时间
Datetime
折扣级别
外码,参照折扣表的折扣级别
应收款
Dec(6,2)
实际收款
折扣表:
折扣情况
Dec(3,2)
项目表:
项目编号
项目名称
外码,参照部门表的部门号
所在位置
收费标准
选择表:
联合主码;
项目号
外码,参照项目表的项目编号
发生时间
联合主码
顾客表:
顾客编号
身份证号
Char(18)
非空;
唯一
级别
客房表:
客房号
类型编号
外码,参照类型表的类型编号
位置
非空,唯一
状态
Char(4)
类型表:
类型名称
费用
总量
剩余量
预约表:
外码,参照客房表的客房号
预约时间
住宿表:
入住时间
离开时间
4.物理设计
员工会经常查询自己的工资,在员工表的(工资)创建索引;
顾客每次付款时都会要查询具体的折扣详情,在折扣表的(折扣详情)创建索引;
顾客选择项目时只会给出项目名称,所以需要经常查询项目名称,在项目表的(项目名称)创建索引;
每位顾客消费时会给出身份证,所以经常需要查询身份证对应的顾客号,在顾客表的(身份证号)创建索引;
顾客住宿时会给出自己想要的客房类型的名称,所以要经常查询类型名称对应的类型号,在类型表的(类型名称)创建索引;
SQL语句
createuniqueindexidx_工资on员工(工资)
createuniqueindexidx_折扣详情on折扣(折扣详情)
createuniqueindexidx_项目名称on项目(项目名称)
createuniqueindexidx_身份证号on顾客(身份证号)
createuniqueindexidx_类型名称on类型(类型名称)
5.数据库实施
--创建数据库
createdatabase酒店管理系统
go
use酒店管理系统
--创建表
--创建部门表
createtable部门(
部门号char(10)primarykey,
名称char(10)notnull,
部门经理char(10),
办公地点char(10),
员工数量intcheck(员工数量>
=0),
)
--创建员工表
createtable员工(
员工号char(10)primarykey,
姓名char(10)notnull,
性别char
(2)notnull,
年龄int,
工资int,
部门号char(10),
职务char(10),
备注varchar(100),
foreignkey(部门号)references部门(部门号)
--创建顾客表
createtable顾客(
顾客号char(10)primarykey,
年龄char
(2),
身份证号char(18)notnullunique,
级别int,
备注varchar(100)
--创建类型表
createtable类型(
类型编号char(10)primarykey,
类型名称char(10)notnull,
费用dec(6,2)check(费用>
总量intcheck(总量>
剩余量intcheck(剩余量>
=0)
--创建客房表
createtable客房(
客房号char(10)primarykey,
类型编号char(10),
位置char(10)notnullunique,
状态char(4),
foreignkey(类型编号)references类型(类型编号)
--折扣表
createtable折扣(
折扣级别intprimarykey,
折扣详情dec(3,2)
--创建款项表
createtable款项(
款项编号char(10)primarykey,
顾客号char(10),
员工号char(10),
时间datetime,
折扣级别int,
应收款dec(6,2)notnull,
实际收款dec(6,2)notnull,
foreignkey(顾客号)references顾客(顾客号),
foreignkey(员工号)references员工(员工号),
foreignkey(折扣级别)references折扣(折扣级别)
--创建项目表
createtable项目(
项目编号char(10)primarykey,
项目名称char(10)notnull,
所在位置char(10),
收费标准intcheck(收费标准>
--创建选择表
createtable选择(
项目号char(10),
发生时间datetime,
primarykey(顾客号,项目号,发生时间),
foreignkey(项目号)references项目(项目编号)
--创建预约表
createtable预约(
客房号char(10),
预约时间datetime,
primarykey(顾客号,客房号,预约时间),
foreignkey(客房号)references客房(客房号)
--创建住宿表
createtable住宿(
入住时间datetime,
离开时间datetime,
primarykey(顾客号,客房号,入住时间),
6.数据库运行
添加部门数据:
('
bm001'
'
客房部'
吴庆宇'
B201'
20)
bm002'
餐饮部'
陈啸'
A103'
10)
bm003'
娱乐部'
胡展鹏'
A401'
添加员工数据:
yg1001'
男'
30,4000,'
部门经理'
'
yg1002'
徐博雅'
女'
26,2700,'
普通员工'
yg2001'
30,3500,'
yg2002'
穆标'
26,2000,'
学徒'
yg3001'
31,4000,'
yg3002'
戚倩倩'
25,3000,'
休假中'
添加顾客数据:
gk00001'
董炎鑫'
24,'
男,'
gk00002'
李伦'
20,'
女,'
gk00003'
杨德军'
31,'
gk00004'
张秀春'
41,'
添加类型数据:
lx001'
普通双人间'
130,50,20)
lx002'
网络单人间'
100,30,13)
lx003'
大床房'
150,50,36)
lx004'
豪华套间'
420,20,14)
添加客房数据:
kf001'
B101'
空闲'
kf002'
B102'
有客'
kf003'
kf004'
B305'
维修中'
kf005'
B404'
添加折扣数据:
(1,
(2,
(3,
添加项目数据:
xm001'
网吧'
A206'
3)
xm002'
KTV'
A501'
90)
xm003'
洗衣'
B105'
款项、选择、预约数据随业务的进行由员工添加
模拟业务
实例1:
新客户沈慧预约kf003
insertinto顾客values(‘gk00005’,’沈慧’,20,’女’,’’,1,’’)go
insertinto预约values(‘gk00005’,’kf003’,’2015-12-06’,’’)
update客房set状态=’预约’where客房号=’kf003’
实例2:
员工徐博雅离职,删除其员工数据
deletefrom员工where姓名=’徐博雅’
实例3:
查询年龄小于等于30岁的男性顾客的姓名、身份证号
select姓名,身份证号
from顾客
where性别=’男’and年龄<
=30
实例4:
insertinto选择select顾客号,项目编号,'
2015-12-1'
from顾客,项目
select*
from选择
and项目号=(select项目编号from项目where项目名称='
and发生时间='
实例5:
即实例4之后,李伦结账付款,由员工戚倩倩处理
insertinto款项select‘kx00001’,顾客号,员工号,'
折扣级别,收费标准,收费标准*折扣详情
from顾客,项目,员工,折扣
where身份证号and项目名称='
and员工.姓名=’戚倩倩’and级别=折扣级别
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点一次差异备份,每两小时一次事务日志备份
首先执行一次完整备份,否则接下来到周日的数据无法进行备份:
在创建一个“清除维护”任务,删除时间超过一个月的备份文件