基于SQL数据库的酒店管理系统

一、数据库设计

1.需求分析

客房的预定:可以通过网络进行预定,预定修改,取消预订。

客房管理:预定管理、客房查询、设置房态、开房、换房、续住、退房等管理。

员工管理: 员工修改信息、人员调配。

账务管理:主要是处理酒店的日常的账务报表,收入报表(前台收入明细表、现付收入明细表)、消费报表等。

顾客管理:收集旅客入住评价,记录顾客身份信息。

2.数据库概念结构设计

(1)局部ER图

旅客信息:

客房信息:

员工信息:

经理信息:

餐厅信息:

(2)整体ER图:

3.数据库逻辑结构设计

(1)关系模式

旅客信息(旅客姓名,性别,身份证号,房间号,餐厅名字);

客房信息(房间号,房间类型,房价,员工号);

餐厅信息(餐厅名字,餐厅电话,经理姓名);

经理(经理姓名,经理电话);

员工(员工号,员工姓名,经理姓名);

(2)关系模式的规范化

旅客信息的主码是旅客身份证号,其他非主属性不完全依赖于身份证号,并且不存在传递函数依赖,因此旅客信息不属于三范式

客房信息的主码是房间号,其他非主属性不完全依赖于房间号,并且不存在传递函数依赖,因此客房信息不属于三范式

餐厅信息的主码是餐厅名字,其他非主属性不完全依赖于餐厅名字,并且不存在传递函数依赖,因此餐厅信息不属于三范式

经理信息的主码是经理姓名,其他非主属性都完全依赖于经理姓名,并且存在传递函数依赖,因此经理信息属于三范式

员工信息的主码是旅客员工号,其他非主属性不完全依赖于员工号,并且不存在传递函数依赖,因此员工信息不属于三范式

(3)数据库中表结构

旅客信息表

列名

数据类型

可否为空

主键

外键

说明

Lkname

Varchar(20)

N

N

旅客姓名

Lksex

 Varchar(5)

N

N

旅客性别

Lkid

char(20)

Y

N

身份证号

Ctname

Varchar(20)

N

N

餐厅名字

房间信息表

列名

数据类型

可否为空

主键

外键

说明

Roomid

char(20)

Y

N

酒店房间号

Roomlx

Varchar(16)

N

N

房间类型

Roomfj

Varchar(16)

N

N

房价

Ygid

Varchar(16)

N

N

员工号

员工表

列名

数据类型

可否为空

主键

外键

说明

Ygname

Varchar(20)

N

N

员工姓名

Ygid

char(5)

Y

N

员工号

Jlname

Varchar(20)

N

N

经理姓名

餐厅信息表

列名

数据类型

可否为空

主键

外键

说明

Ctname

Varchar(20)

Y

N

餐厅名字

Ctph

 Varchar(5)

N

N

餐厅电话

Jlname

Varchar(20)

N

N

经理姓名

经理信息表

列名

数据类型

可否为空

主键

外键

说明

  Jlname

char(20)

Y

N

经理姓名

Jlph

 Varchar(20)

N

N

经理电话

(4)数据库中的视图

视图一:  名称  功能 

定义(代码)旅客信息表

CREATE VIEW CustomerView (

    旅客姓名,

    旅客性别, 

身份证号

餐厅名字

)

AS

SELECT Lkname, Lksex, Lkid,Ctname

FROM Customer

视图二:  名称  功能

定义(代码)

CREATE VIEW 房间信息 (

    房间号,

    房间类型,

    房间价格

    员工号

)

AS

SELECT RoomID, Roomlx,Roomfj,Ygid

FROM Room

三、系统操作说明及运行结果

1.创建数据库及表

(1)创建酒店管理系统数据库

代码:

create database jdglxt

go

 

(2)客房信息表

create table kfxxb             

(roomid char(5),

 roomlx char(16) not null,

 roomfj varchar(16) not null,

 ygid varchar(16) not null,

primary key(roomid)

(3)旅客信息表

create table lkxxb                   

(lkname char(20) not null,

lksex char(5)not null,         

lkid char(20)not null,

 ctname varchar(20)not null,

primary key(lkid)

(4)餐厅信息表

create table ctxxb

(ctname char(20),

ctph varchar(5),

jlname varchar(20)

primary key(ctname),

(5)员工表

create table ygxxb

(ygid char(10),

ygname varchar(20),

jlname varchar(20)

primary key(ygid)

)

(6)经理信息表

create table jjxxb

(jlname char(20) primary key,

 Jlth varchar(20) not null)

2.数据添加

(1)--向客房信息表中插入数据

代码:

insert into kfxxb

values('2008','标间','90','020101'),

 ('2009','标间','90','020102'),

('2010','标间','90','020103'),

 ('3007','特价','70','020104'),

 ('3008','特价','70','020105'),

('3009','特价','80','020106'),

('3010','单人间','80','020107'),

('4001','单人间','80','020109'),

('4002','三人间','120','020110'),

('4003','三人间','120','020111')

(2)--向旅客信息表中插入数据

代码:

insert into lkxxb

 values('张三','男','123456789012345678','好运来'),

 ('李四','男','012345678912345678','好运来'),

 ('王五','男','987654321012345678','好运来'),

 ('张强','男','951564621012345678','好运来'),

 ('陈七','女','654987721012345678','好运来'),

('马六','男','220125199902253645','好运来'),

 ('李红','女','987654321012347128','好运来'),

 ('张杰','男','220228419650325645','好运来'),

 ('陈军','男','568941723849268622','好运来') ,

 ('王久','女','025849613546820056','好运来')

(3)--向餐厅信息表中插入数据

代码:

insert into ctxxb

values('好运来','15356412471','秋山')

('好运一','15356412472','秋以')

('好运二','15356412473','秋和')

('好运三','15356412474','秋三')

('好运四','15356412475','秋山四')

('好运五','15356412476','秋五')

('好运六','15356412477','秋六')

('好运七','15356412478','秋七')

('好运八','15356412479','秋吧')

('好运九','15356412480','秋就')

(4)--向员工信息表中插入数据

代码:

insert into ygxxb

values('王朝阳','010201','秋山'),

 ('张向荣','010202','秋山'),

 ('李乐','010203','秋山'),

 ('田达','010204','秋山'),

 ('周博 ','010205','秋山'),

('田家','010206','秋山'),

 ('伊大 ','010207','秋山'),

('周婷婷 ','010208','秋山'),

('陈眉丽','010209','秋山'),

 ('犹大冬 ','010210','秋山')

(5)--向经理信息表插入数据

代码:

insert into jjxxb

values('秋山','15489762450')

('秋以','15489762451')

('秋和','15489762452')

('秋三','15489762453')

('秋山四','15489762454')

('秋五','15489762455')

('秋六','15489762456')

('秋七','15489762457')

('秋吧','15489762458')

('秋就','15489762459')

3.数据修改

--修改客房信息表表中房间号2008的房价

(1)代码:

update kfxxb

set roomfj='100'

where roomid='2008'

--修改客房信息表中

update  kfxxb

set roomfj='150'

where roomid='4002'

(2)餐厅信息表

--修改餐厅信息表中好运来的电话字

update ctxxb

set ctph='19823480345'

where ctname='好运来'

(3)旅客信息表

--修改旅客信息表中张三的身份证号

update lkxxb

set lkid='220228474383978544'

where ikname='张三'

--修改旅客信息表中李四的性别

update llxxb

set lkid='女'

where iknamee='李四'

(4)员工信息表

--修改员工信息表中王朝阳的员工号

update ygxxb

set ygid='010220'

where ygname='王朝阳'

--修改员工信息表中田家的员工号

update ygxxb

set ygid='010221'

where ygname='田家'

(5)经理信息表

--修改经理信息表中经理秋山电话

update jjxxb

set ctph='18674320384'

where jlname='秋山'

--修改经理信息表中经理秋五电话

update jjxxb

set ctph='18674320311'

where jlname='秋五'

4.数据删除

(1)旅客信息表

--删除旅客信息表中姓名为王五的信息

delete from lkxxb

where lkname='王五'

--删除旅客信息表中陈七的身份信息

delete from lkxxb

where lkname='陈七'

(2)客房信息表

--删除客房信息表中编号2009的信息

delete from kfxxb

where kfid='2009'

--删除客房信息表中编号4000的信息

delete from kfxxb

where kfid='4000'

(3)员工信息表

--删除员工信息表中李乐的基本信息

delete from ygxxb

where ygname='李乐'

--删除员工信息表中伊大的基本信息

delete from ygxxb

where ygname='伊大'

(4)餐厅信息表

--删除餐厅信息表中好运五的基本信息

delete from ctxxb

where ctname='好运五'

--删除餐厅信息表中好运六的基本信息

delete from ctxxb

where ctname='好运六'

(5)经理信息表

--删除经理信息表中秋山四的基本信息

delete from jlxxb

where jlname ='秋山四'

--删除经理信息表中秋五的基本信息

delete from jlxxb

where jlname ='秋五'

5.数据查询

(1)查询旅客信息表的所有信息(单表查询)

代码:select*from lkxxb

截图:

(2)查询张强的员工号(多表查询)

select ygid from lkxxb,ygxxb

where ygxxb.ygid=lkxxb.lkname and

ygxxb.ygid='张强'

(3)查询旅客信息表中所有旅客

select lkname from lkxxb

(4)查询员工信息表中所有员工编号

select ygid,count(*) as amount from ygxxb

group by ygid

(5)将所有员工编号按照降序排列(将查询结果排序)

代码:

select ygid from ygxxb

order by ygid desc

(6)查询客房信息表(视图查询)

代码:

select*from kfxxb

(7)查询员排名最小的员工号

代码:

select min(ygid) from ygxxb

(8)查询男女人人数(分组查询)

代码:

select lksex,count(*) as 人数 from lkxxb

group by lksex   

(9)查询价格大于100的入住客房房间号和价格(单表查询)

代码:

select roomid,price

from kfxxb

where price>100

(10)查询所有房价小于100的房间号

select roomfj,roomid

from kfxxb

where roomfj<100

 

create database jdglxt
go
--客房信息表
create table kfxxb             (roomid char(5) primary key,roomlx char(16) not null,roomfj varchar(16) not null,ygid varchar(16) not null)
--旅客信息表
create table lkxxb                   (lkname char(20) not null,lksex char(5)not null,         lkid char(20)not null,ctname varchar(20)not null,primary key(lkid))--餐厅信息表
create table ctxxb(ctname char(20),
ctph varchar(20),
jlname varchar(20),
primary key(ctname))--员工表
create table ygxxb 
(ygid char(10) primary key,
ygname varchar(20),
jlname char(20) )
--经理信息表
create table jjxxb
(jlname char(20) primary key,
Jlth varchar(20) not null
)
--插入数据
--向客房信息表中插入数据
insert into kfxxb 
values('1010','标间','90','010101'),('1011','标间','90','010102'),
('1012','标间','90','010103'),('1013','特价','70','010104'),('1014','特价','70','010105'),
('1015','特价','80','010106'), 
('1016','单人间','80','010107'),
('1017','单人间','80','010109'),
('1018','三人间','120','010110'),
('1019','三人间','120','010111')--3向旅客信息表中插入数据
insert into lkxxbvalues('尚福乐','男','211322198509260317','好运来'),('岳朋','女','211481198401154441','好运来'),('赵晓强','男','987654321012345678','好运来'),('杨思剑','女','522324197508045647','好运来'),('柏朝林','男','510921591208435011','好运来'),
('李家发','男','52262619800410121X','好运来'),('李科','女','522324197309155226','好运来'),('钱齐高','男','433026196612172414','好运来'),('李关福','女','522422610421281489','好运来') ,('段小平','男','510226196602284031','好运来')--7向餐厅信息表中插入数据
insert into ctxxb 
values('好运来','15356412471','秋山')
--8向员工信息表中插入数据
insert into ygxxb 
values('王阳','020201','秋山'),('张荣','020202','秋山'),('李向乐','020203','秋山'),('王一达','020204','秋山'),('周天博 ','020205','秋山'),
('田林','020206','秋山'),('伊大金 ','020207','秋山'),
('周婷 ','020208','秋山'),
('陈丽','020209','秋山'),('犹大冬 ','020210','秋山')--9.向经理信息表插入数据
insert into jjxxb
values('秋叶','15187964521')update kfxxb
set roomfj='100'
where roomid='2008'update  kfxxb
set roomfj='150'
where roomid='4002'update ctxxb
set ctph='19823480345'
where ctname='好运来'update lkxxb
set lkid='220228474383978544'
where lkname='张三'select*from lkxxbselect lkname from lkxxbselect ygid,count(*) as amount from ygxxb
group by ygid
select ygid from ygxxb
order by ygid descselect*from kfxxb
select min(ygid) from ygxxbselect lksex,count(*) as 人数 from lkxxb
group by lksexselect roomid,roomfj
from kfxxb
where roomfj>100select roomfj,roomid
from kfxxb
where roomfj<100select ygname ygid from ygxxb
order by ygid desc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/34144.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

绿色智能:AI机器学习在环境保护中的深度应用与实践案例

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

2.vue常用指令

2.vue常用指令 目录 1. vue的基础语法结构2. 插值语法3. vue常用指令 3.1 v-html语法结构3.2 v-text3.3 v-bind 绑定动态属性3.4 v-on 添加事件 语法格式3.4.1事件绑定3.4.2 获取event对象3.4.3 动态事件缩写3.4.5 事件绑定的修饰符 3.5 v-if v-else-if v-else5.6 v-show5.7 …

《Solana 中文开发教程》学习笔记(Part 1~4)

Part 1 &#xff1a;Solana介绍 2017年11月&#xff0c;Anatoly Yakovenko发表了一篇白皮书&#xff0c;介绍了“Proof of History”这一技术 Part 2 &#xff1a;Solana介绍 Account 在Solana中&#xff0c;"Everythin is an Account" 类似Linux世界里面把所有的…

基于触觉感知的目标识别技术在智能机器人抓取中的应用综述

引言在智能机器人抓取任务中&#xff0c;目标识别是一个核心问题。机器人不仅需要识别物体&#xff0c;还需根据物体的形状、纹理、硬度等信息来规划抓取策略。传统的目标识别方法通常依赖于视觉信息&#xff0c;但在许多复杂环境中&#xff0c;单一视觉信息往往不能提供足够的…

huggingface 中模型如何查找和使用?

在 Models - Hugging Face模型中找使用方法 https://hf-mirror.com/ 一&#xff1a;如何找到统一使用方法 对于文字处理AutoTokenizer是一样的&#xff0c;模型名可能不一样。具体操作如下&#xff1a; 1. 先在模型下面找到你需要的模型点开 2. 点开最右边的Use in Transfor…

AgentLego:组装大模型智能体“乐高”

1 AgentLego 1.1 AgentLego 是什么 AgentLego 是一个提供了多种开源工具 API 的多模态工具包&#xff0c;旨在像是乐高积木一样&#xff0c;让用户可以快速简便地拓展自定义工具&#xff0c;从而组装出自己的智能体。通过 AgentLego 算法库&#xff0c;不仅可以直接使用多种工…

w071基于springboot的图书进销存管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0…

手撕单例的 5 种写法!

单例模式是一种常见的设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。当然&#xff0c;它也是面试中的常客&#xff0c;尤其是某手面试中经常要求应聘者手撕&#xff0c;所以今天咱们就来盘盘它。 单例模式的实现方式有很多&…

制作Windows11个人iso镜像的方法

一、前期准备 1.光盘刻录软件AnyBurn 2.对应Windows11版本的iso基础镜像&#xff08;一定要对应&#xff0c;不然封装的iso镜像无法使用&#xff09; Windows11最新版本24H2的iso镜像下载地址下载 Windows 11 此前版本下载地址官方网站不再提供&#xff0c;需要自行搜索下载 笔…

timesnet+timemixer时间序列预测模型

1.timesnet 原论文源码&#xff1a;https://github.com/thuml/Time-Series-Library?tabreadme-ov-file 时间序列分析被广泛应用于众多领域中&#xff0c;如天气预报中预测气象要素的未来变化、数据质控时填补缺失值、工业生产中监控设备状态、医疗诊断时分析心跳曲线等。 不…

Linux 35.6 + JetPack v5.1.4之RTP实时视频Python框架

Linux 35.6 JetPack v5.1.4之RTP实时视频Python框架 1. 源由2. 思路3. 方法论3.1 扩展思考 - 慎谋而后定3.2 扩展思考 - 拒绝拖延或犹豫3.3 扩展思考 - 哲学思考3.4 逻辑实操 - 方法论 4 准备5. 分析5.1 gst-launch-1.05.1.1 xvimagesink5.1.2 nv3dsink5.1.3 nv3dsink sync05…

异或和公式

前缀异或和公式 前缀异或和的概念与前缀和类似&#xff0c;但它使用的是异或&#xff08;XOR&#xff09;操作而不是加法。异或操作有一些独特的性质&#xff0c;使得前缀异或和在处理某些问题时非常有用。下面是前缀异或和的推导原理&#xff1a; • 异或操作的性质&#xf…

【Unity】 HTFramework框架(五十三)使用 Addressables 可寻址系统

更新日期&#xff1a;2024年7月25日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 Addressables 可寻址系统使用 Addressables 可寻址系统一、导入 Addressables二、切换到 Addressables 加载模式三、切换资源加载助手四、加载资源五、注…

Spring Cache简单使用

Spring Cache是一个框架&#xff0c;实现了基于注解的缓存功能。只需要简单地加一个注解&#xff0c;就能实现缓存功能 Spring Cache提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; 1.EHCahce 2.Chffeine 3.Redis 需要导入的maven坐标 …

Delphi Web前端开发教程(9):基于TMS WEB Core框架

3、REST Servers服务端(后端)框架 REST服务端特点&#xff1a; – 为远程资源提供一个REST API接口。也可以为其他网络内容提供服务&#xff1b; – 包括在Delphi Enterprise & Architect企业版和架构师版中的RAD服务器、DataSnap、WebBroker&#xff1b; – 开源框架&a…

vue+mars3d点击图层展示炫酷的popup弹窗

展示效果 目录 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 二、封装自定义的popup&#xff0c;样式可以自行调整 一&#xff1a;叠加数据图层到地图上&#xff0c;此时需要使用bindPopup绑定popup 这里我根据数据不同&#xff0c;展示的…

【机器人学】3-1.六自由度机器人速度域-雅克比矩阵【附MATLAB代码】

MATLAB仿真验证 已知六轴机器人的D-H参数如下所示&#xff1a; 关节1关节2关节3关节4关节5关节609000-9090a0042539300d160.700113.39993.60900-9000000000 通过D-H参数&#xff0c;选用改进型的D-H参数&#xff0c;可以得到各个关节间的旋转矩阵。详细请看我的第一篇博客六自…

基于SSM的网上拍卖系统+LW示例参考

1.项目介绍 系统角色&#xff1a;管理员、卖家、买家功能模块&#xff1a;用户管理、卖家管理、公告管理、竞拍物品管理、预约竞拍管理、竞拍管理等技术选型&#xff1a;SSM&#xff0c;jsp等测试环境&#xff1a;idea2024&#xff0c;jdk1.8&#xff0c;tomcat8&#xff0c;n…

Vue3安装 运行教程

本文是综合了所有vue安装教程而成 更细化 更简略 希望对各位读者有所帮助&#xff01; Vue安装 1. Vue-cli脚手架安装 安装vue的方式有很多 我们这里选择npm方式安装vue npm方式 npm方式安装vue&#xff0c;详细介绍见下文。 1.node.js安装和配置 安装npm 需要安装note.js&…

帝可得-设备管理

设备管理 需求说明 点位管理主要涉及到三个功能模块&#xff0c;业务流程如下&#xff1a; 新增设备类型: 允许管理员定义新的售货机型号&#xff0c;包括其规格和容量。新增设备: 在新的设备类型定义后&#xff0c;系统应允许添加新的售货机实例&#xff0c;并将它们分配到特…