收藏 分销(赏)

数据库项目-酒店管理系统.doc

上传人:精**** 文档编号:4034454 上传时间:2024-07-25 格式:DOC 页数:11 大小:96.04KB 下载积分:8 金币
下载 相关 举报
数据库项目-酒店管理系统.doc_第1页
第1页 / 共11页
数据库项目-酒店管理系统.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
酒店管理系统 系别:信息管理系 班级:信息14005 姓名:江东流 学号:14120200517 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语句 create unique index idx_工资 on 员工(工资) create unique index idx_折扣详情 on 折扣(折扣详情) create unique index idx_项目名称 on 项目(项目名称) create unique index idx_身份证号 on 顾客(身份证号) create unique index idx_类型名称 on 类型(类型名称) 5. 数据库实施 ——创建数据库 create database 酒店管理系统 go use 酒店管理系统 go -—创建表 —-创建部门表 create table 部门( 部门号 char(10) primary key, 名称 char(10) not null, 部门经理 char(10), 办公地点 char(10), 员工数量 int check(员工数量>=0), ) go ——创建员工表 create table 员工( 员工号 char(10) primary key, 姓名 char(10) not null, 性别 char(2) not null, 年龄 int, 工资 int, 部门号 char(10), 职务 char(10), 备注 varchar(100), foreign key (部门号) references 部门(部门号) ) go --创建顾客表 create table 顾客( 顾客号 char(10) primary key, 姓名 char(10) not null, 年龄 char(2), 性别 char(2) not null, 身份证号 char(18) not null unique, 级别 int, 备注 varchar(100) ) go -—创建类型表 create table 类型( 类型编号 char(10) primary key, 类型名称 char(10) not null, 费用 dec(6,2) check(费用〉=0), 总量 int check(总量>=0), 剩余量 int check(剩余量>=0) ) go —-创建客房表 create table 客房( 客房号 char(10) primary key, 类型编号 char(10), 位置 char(10) not null unique, 状态 char(4), 备注 varchar(100), foreign key (类型编号) references 类型(类型编号) ) go -—折扣表 create table 折扣( 折扣级别 int primary key, 折扣详情dec(3,2) ) go -—创建款项表 create table 款项( 款项编号 char(10) primary key, 顾客号 char(10), 员工号 char(10), 时间 datetime, 折扣级别 int, 应收款 dec(6,2) not null, 实际收款 dec(6,2) not null, foreign key (顾客号) references 顾客(顾客号), foreign key (员工号) references 员工(员工号), foreign key (折扣级别)references 折扣(折扣级别) ) go ——创建项目表 create table 项目( 项目编号 char(10) primary key, 项目名称 char(10) not null, 部门号 char(10), 所在位置 char(10), 收费标准 int check(收费标准〉=0), foreign key (部门号) references 部门(部门号) ) go ——创建选择表 create table 选择( 顾客号 char(10), 项目号 char(10), 发生时间 datetime, 备注 varchar(100), primary key(顾客号,项目号,发生时间), foreign key (顾客号) references 顾客(顾客号), foreign key (项目号) references 项目(项目编号) ) go ——创建预约表 create table 预约( 顾客号 char(10), 客房号 char(10), 预约时间 datetime, 备注 varchar(100), primary key(顾客号,客房号,预约时间), foreign key (顾客号) references 顾客(顾客号), foreign key (客房号) references 客房(客房号) ) go ——创建住宿表 create table 住宿( 顾客号 char(10), 客房号 char(10), 入住时间 datetime, 离开时间 datetime, primary key(顾客号,客房号,入住时间), foreign key (顾客号) references 顾客(顾客号), foreign key (客房号) 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,'男’,’320830199110241215’,3,’') ('gk00002’,’李伦’,20,’女’,’34260199511134523’,1,'') (’gk00003’,'杨德军’,31,’男’,’140603198402016231’,1,’’) ('gk00004’,’张秀春’,41,'女','320829197405104943’,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岁,140100199510211546) insert into 顾客 values (‘gk00005','沈慧’,20,'女’,’140100199510211546',1,’')go insert into 预约 values (‘gk00005’,’kf003’,’2015-12—06’,'’) update 客房 set 状态=’预约’ where 客房号=’kf003' 实例2: 员工徐博雅离职,删除其员工数据 delete from 员工 where 姓名=’徐博雅’ 实例3: 查询年龄小于等于30岁的男性顾客的姓名、身份证号 select 姓名,身份证号 from 顾客 where 性别=’男’ and 年龄<=30 实例4: 顾客李伦选择KTV项目(李伦,34260199511134523) insert into 选择 select 顾客号,项目编号,'2015-12—1’,'’ from 顾客,项目 where 身份证号=’34260199511134523’ and 项目名称='KTV’ go select * from 选择 where 顾客号=(select 顾客号 from 顾客 where 身份证号='34260199511134523') and 项目号=(select 项目编号 from 项目 where 项目名称=’KTV') and 发生时间='2015—12—1’ 实例5: 即实例4之后,李伦结账付款,由员工戚倩倩处理 insert into 款项 select ‘kx00001’,顾客号,员工号,’2015-12-1’,折扣级别,收费标准,收费标准*折扣详情 from 顾客,项目,员工,折扣 where 身份证号=’34260199511134523’ and项目名称='KTV'and 员工。姓名=’戚倩倩’ and 级别=折扣级别 go select * from 款项 where 款项编号='kx00001’ 7。 数据库安全性 ①数据库管理员以Windows身份验证登录,不再另外创建登录名 为员工、经理和顾客分别创建一个登录名,例如: ②为员工、经理和顾客分别创建一个用户,对应登录名,例如: ③授予权限 授予顾客,对项目表和类型表的查询权限 grant select on 项目 to 顾客 grant select on 类型 to 顾客 授予员工,对员工表的查、对款项表的增查、对选择表、顾客表、客房表、预约表、住宿表的增删改查、对类型表的改查权限 grantselect on 员工 to 员工 grant insert,select on 款项 to 员工 grant insert,delete,update,select on 选择 to 员工 grant insert,delete,update,select on 顾客 to 员工 grant insert,delete,update,select on 客房 to 员工 grant insert,delete,update,select on 预约 to 员工 grant insert,delete,update,select on 住宿 to 员工 grantupdate,select on 类型 to 员工 授予经理,对员工表的增删改查、对部门表增删改查、对项目表的增删改查权限 grant insert,delete,update,select on 员工 to经理 grant insert,delete,update,select on 部门 to经理 grant insert,delete,update,select on 项目 to经理 8。 数据库备份计划 每周日24点一次完整备份,每天24点一次差异备份,每两小时一次事务日志备份 首先执行一次完整备份,否则接下来到周日的数据无法进行备份: 在创建一个“清除维护”任务,删除时间超过一个月的备份文件
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 酒店餐饮

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服