数据库系统课设——基于python+pyqt5+mysql的酒店管理系统(可直接运行)--GUI编程(2)

news2024/11/16 4:30:35

 几个月之前写的一个项目,通过这个项目,你能学到关于数据库的触发器知识,python的基本语法,python一些第三方库的使用,包括python如何将前后端连接起来(界面和数据),还有界面的设计等等。希望大家能从项目中学到东西。

一,项目背景

1,实验设计简述


宾馆管理系统通过提供顾客和员工信息之间的关系建立该系统,其中包括员工管理功能,出租管理功能,客户管理功能,订单管理功能,报表和维护功能,登录功能。该系统可以通过客户信息的查找 快速找到该客户的房间信息。还包括对客户信息的增加、删除、修改、查询等以及员工信息的增加、删除、修改、查询
(1)宾馆有员工,员工员工信息查看,查看订单权限,查看房号,房型。
(2)宾馆有各种标准的房间。房间数据包括房间号、房间级别、房间价位及房间的状态(是否已经有客人)。房间号唯一表示一个房间,房间级别决定房间价位。房间有多种级别,分别为单人间、标准间、豪华间、商务间、行政间。房间状态表示此房间是否可以预定、入住或者转房。

基本功能实现:


(1)房间管理。
(2)客人预定、退订客房管理。
(3)客人入住、店内消费管理。

(4)结算管理。
(5)实现分类查询。
(6)输出相应的数据报

描述每个业务的主要功能。


1、房间管理:存储房间信息数据,房间号,客户可以查看房型(单人间,标准间,豪华间、商务间、行政间),房间价位,房间状态(有无客人,无客人:房间可以预定,房间可以转入。有客人:客人能退房,转房),房间对应楼层。
2、客户管理:客户分为个人预约客户和团队预约客户(预约时间,预约客户号),个人入住客户和团队入住客户(入住时间,入住客户号),还有换房功能。
3、员工管理:可以添加员工(姓名,性别,员工号,职位,入职时间),删除员工,修改员工,查询员工信息。可以查看所有订单,对房间进行增删改查操作(房间号,房型,价格)。
4、报表和维护:数据备份(导出数据,导入数据,导出数据表到表格),报表。
5、订单管理功能:订单记录报表,客户入住的房型(图片说明),支付金额,入住的客户信息(客户号,入住时间,退房时间)
6、登陆功能:登陆(员工(账号密码)登陆/客户(账号密码)登陆)密码找回功能,修改密码功能。

2,根据功能分析和列举涉及的数据项。

  1. booking_client个人预定表:(cid客户号,rid房间号,star_time入住时间,end_time退房时间,booking_time预定时间,remark备注)
  2. booking_team团队预定表:(tid团队号,rid房间号,star_time入住时间,end_time退房时间,booking_time预定时间,remark备注)
  3. checking_clint个人入住表:(rid房间号,cid客户号,star_time入住时间,end_time退房时间,total_price总价格,check_in_sid办理入住的员工编号,remark备注)
  4. checking_team团队入住表:(rid房间号,tid团队好,star_time入住时间,end_time退房时间,total_price总价格,check_in_sid办理入住的员工编号,remark备注)
  5. client客户表:(cname姓名,cid客户号,cphone电话号码,cage年龄,csex性别,register_sid注册员工号,accomodation_times入住次数,register_time注册时间)
  6. hotel order订单表:(id用户标识,ordertype订单形式,start_time预定时间,rid房间号,pay_type支付方式,money支付价格,remark备注,order_time订单时间,register_sid注册员工时号)
  7. room房间表:(rid房间号,rtype类型,rstorey楼层,rprice价格,rdesc房间状态,rpic房间图片)
  8. staff员工表:(sid员工号,sname姓名,ssex性别,stime登记入职时间,susername账户号,spassword密码,srole权限,sidcard身份证,sphone手机号)

9、team团队表:(tname名称,tid团队好,tphone电话号码,check_in_sid登陆员工号,accomodation_time入住次数,register_time注册时间)

二,项目具体实现

        1、数据项的简要描述。

1、booking_client客户个人预定表 (
  cid varchar(255) NOT NULL
  rid varchar(255) NOT NULL
  start_time date DEFAULT NULL
  end_time  date DEFAULT NULL)
2、booking_team团队预定表(
  tid varchar(255) NOT NULL
  rid varchar(255) NOT NULL
  start_time  date DEFAULT NULL
  end_time  date DEFAULT NULL
  booking_time  timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
   remark varchar(255) DEFAULT NULL
3、checkin_client个人入住表 (
  rid 房间号 varchar(255) NOT NULL
  cid客户号  varchar(255) NOT NULL
  start_time入住时间  date DEFAULT NULL
  end_time退房时间  date DEFAULT NULL
  total_price总价格  varchar(255) DEFAULT NULL
  check_in_sid办理入住的员工编号  varchar(255) DEFAULT NULL
  remark备注  varchar(255) DEFAULT NULL)
4、checkin_team团队入住表(
  rid房间号 varchar(255) NOT NULL
  tid 客户号  varchar(255) NOT NULL
  start_time入住时间 date DEFAULT NULL
  end_time退房时间  date DEFAULT NULL
  total_price总价格  varchar(255) DEFAULT NULL,
  check_in_sid办理入住的员工编号  varchar(255) DEFAULT NULL,
  remark备注   varchar(255) DEFAULT NULL)
5、 client客户表 (
  cname姓名  varchar(255) NOT NULL
  cid客户号  varchar(255) NOT NULL
  cphone电话号  varchar(255) DEFAULT NULL
  cage年龄  varchar(255) NOT NULL
  csex性别  varchar(255) DEFAULT NULL
  register_sid注册员工号  varchar(255) DEFAULT NULL
  accomodation_times入住次数  int(11) DEFAULT NULL)
  register_time注册时间  timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
6、hotelorder订单表 (
  id 用户标识  varchar(255) NOT NULL
  ordertype订单形式  varchar(255) NOT NULL
  start_time入住时间  date NOT NULL
  end_time退房时间  date NOT NULL
  rid房间号  varchar(255) NOT NULL
  pay_type支付方式  varchar(255) DEFAULT NULL
  money缴费  varchar(255) DEFAULT NULL
  remarkv备注  varchar(255) DEFAULT NULL
  order_time订单时间  timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  register_sid注册员工编号  varchar(255) DEFAULT NULL)
7、room房间表 (
  rid房间号  varchar(255) NOT NULL
  rtype房间类型  varchar(255) NOT NULL
  rstorey楼层  varchar(255) NOT NULL
  rprice价格  varchar(255) NOT NULL
  rdesc房间状态  varchar(255) DEFAULT NULL
  rpic房间图片  varchar(255) DEFAULT NULL)
8、 staff员工表 (
  sid 员工号  varchar(255) NOT NULL
  sname 姓名  varchar(255) NOT NULL
  ssex性别  varchar(255) DEFAULT NULL
  stime入职时间  date DEFAULT NULL
  susername账号  varchar(255) NOT NULL
  spassword 密码  varchar(255) NOT NULL
  srole 权限  varchar(255) NOT NULL
  sidcard 身份证号  varchar(255) NOT NULL
  sphone 手机号码 varchar(255) DEFAULT NULL)
9、team 团队表(
  tname名字  varchar(255) NOT NULL
  tid团队号  varchar(255) NOT NULL
  tphone电话号码  varchar(255) DEFAULT NULL
  check_in_sid 登记员工编号 varchar(255) DEFAULT NULL
  accomodation_times 入住次数 int(11) DEFAULT NULL
  register_time注册时间 timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)

        2、安全性分析

数据安全是指在数字信息的整个生命周期中保护数字信息免遭未经授权的访问并抵御损坏、失窃等风险,为此,我们设置了权限访问,只有输入正确的账号密码才能查看系统中的相关信息,非管理员登录无法得到系统的信息。此外,我们还可以通过输入的账号密码匹配查看相应的数据报表和客户员工个人信息,或者修改需要变动的数据。这也使得信息不容易被泄露出去,增加了数据的可改性。为防止因管理员想要修改密码,我们还设置了在登录页面可修改密码功能,加强了数据的安全性。为了防止人为操作失误使得原数据丢失、软件BUG造成数据丢失以及硬件故障造成数据库数据丢失等问题,我们设置了数据库备份,用来找回丢失的数据信息。尤其是客户的预订信息、入住信息以及数据报表的信息,在每添加一名新客户或新团体时,我们的数据库便会进行更新,这也有利于我们进行数据核对。使用数据库备份也有利于相同数据库用于新环境的搭建以及开发测试环境数据库的搭建。围绕数据安全、数据备份和其他等角度,描述系统可采取的安全策略和风险控制策

        3、给出关系关系模式,标注关系模式的主码和外码。

1、booking_client个人预定表:(cid,rid,star_time,end_time,booking_time,remark)

主码:(cid,rid)

外码:(cid) REFERENCES client (cid)

  (rid) REFERENCES room (rid)

范式级别:1NF

2、booking_team团队预定表:(tid,rid,star_time,end_time,booking_time,remark)

主码:(tid,rid)

外码:(tid) REFERENCES team (tid)

  (rid) REFERENCES room (rid)

    范式级别:1NF

3、checking_clint个人入住表:(rid,cid,star_time,end_time,total_price,check_in_sid,remark)

主码:(rid,cid)

外码: (rid) REFERENCES  room (rid)

 (cid) REFERENCES client (cid)

 (check_in_sid) REFERENCES staff (sid)

范式级别:1NF

4、checking_team团队入住表:(rid,tid,star_time,end_time,total_price,check_in_sid,remark)

主码:(rid,tid)

外码:(rid) REFERENCES room (rid)

 (check_in_sid) REFERENCES staff (sid)

  (tid) REFERENCES team (tid)

范式级别:1NF

5、clien客户表:(cname,cid,cphone,cage,csex,register_sid,accomodation_times入,register_time)

主码:(cid)

外码:(register_sid) REFERENCES staff(sid)

范式级别:3NF

6、hotelorder订单表:(id,ordertype,start_time,rid,pay_type,money,remark,order_time,register_sid)

主码:(id,start_time,end_time,rid,ordertype)

外码:(rid) REFERENCES room(rid)

范式级别:1NF

7、room房间表:(rid,rtype,rstorey,rprice,rdesc,rpic)

主码:(rid)

外码:无

范式级别:BCNF

8、staff员工表:(sid,sname,ssex,stime,susername,spassword,srole,sidcard,sphone)

主码:(sid)

外码:无

范式级别:BCNF

9、team团队表:(tname,tid,tphone,check_in_sid,accomodation_time,register_time)

主码:(tid)

外码:(check_in_sid) REFERENCES staff (sid)

范式级别:3NF

        4,全局ER图

        5,数据安全性

 数据安全是指在数字信息的整个生命周期中保护数字信息免遭未经授权的访问并抵御损坏、失窃等风险,为此,我们设置了权限访问,只有输入正确的账号密码才能查看系统中的相关信息,非管理员登录无法得到系统的信息。此外,我们还可以通过输入的账号密码匹配查看相应的数据报表和客户员工个人信息,或者修改需要变动的数据。这也使得信息不容易被泄露出去,增加了数据的可改性。若用户想要修改密码,我们还设置了在登录页面可修改密码功能,加强了数据的安全性。为了防止人为操作失误使得原数据丢失、软件BUG造成数据丢失以及硬件故障造成数据库数据丢失等问题,我们设置了数据库备份,用来找回丢失的数据信息。尤其是客户的预订信息、入住信息以及数据报表的信息,在每添加一名新客户或新团体时,我们的数据库便会进行更新,这也有利于我们进行数据核对。使用数据库备份也有利于相同数据库用于新环境的搭建以及开发测试环境数据库的搭建。

三,数据库的创建

图太多了,都放出来就有点水篇幅了,如果想看,就点赞收藏关注,然后后台私信我就好啦。

 

 四,GUI界面呈现

也是一样,没有将所有界面都展示出来,也只是展示了一部分,如果想看后续,就点赞收藏关注,然后后台私信我就好啦。

1,修改密码界面

2,查看个人信息,员工可登录进行查看

3,增加员工并填入员工基本信息

 

4,查询客房信息

 

 5,查询报表:出租率和订单量,以及客户和员工的相关信息

 6,数据库风险预防措施:数据备份,并在电脑生成该备份文件

 7,宾馆管理系统主界面

五,代码文件

 

 如果需要源码,请点赞收藏关注,然后后台私信我就好啦!!!

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

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

相关文章

Guava限流器原理浅析

文章目录 基本知识限流器的类图使用示例 原理解析限流整体流程问题驱动1、限流器创建的时候会初始化令牌吗?2、令牌是如何放到桶里的?3、如果要获取的令牌数大于桶里的令牌数会怎么样4、令牌数量的更新会有并发问题吗 总结 实际工作中难免有限流的场景。…

振弦采集仪结合无线中继扩展应用岩土工程监测的解决方案

振弦采集仪结合无线中继扩展应用岩土工程监测的解决方案 岩土工程监测是现代工程建设不可或缺的一部分,其目的是确保工程安全和稳定。然而,在进行监测时常常面临许多挑战。传统的岩土工程监测方法需要大量的人力、物力和时间,而且往往难以采…

顽固污渍一键去除,还有紫外线除菌功能,希亦超声波清洗机体验

日常生活中, 眼镜、牙刷等小物件的清洗该怎么清洗呢?如果使用肥皂水或者专业清洁剂来处理,还需要使用一些小工具来帮助清洁,比如清洁布、棉签等,不仅会很麻烦,而且需要频繁擦拭,镜片等物品光滑的…

601-体育馆的人流量

文章目录 601-体育馆的人流量1. 题目2. 思路3. 解决4. 运行结果 601-体育馆的人流量 1. 题目 2. 思路 思路:查询Stadium表中人流量超过100的记录,将查询结果与自身的临时表连接,再使用where获得满足条件的记录 查询Stadium表中人流量超过10…

现代数据中心发明人Luiz André Barroso去世,享年59岁,Jeff Dean、劈柴发推悼念

Luiz Andr Barroso因故去世,享年59岁。他作为现代云计算行业的奠基人,为谷歌的发展做出了不可磨灭的贡献。 数据中心发明人,云计算的奠基人,谷歌22年老兵Luiz Andr Barroso于9月16日意外去世,享年59岁。 谷歌CEO 劈柴…

NVM的下载安装和使用

node包管理工具NVM让我们更加方便在各个node版本之间切换来适配不同的项目 一、下载安装 下载地址:github下载地址 https://github.com/coreybutler/nvm-windows/releases安装一直点下一步就行,可以安装在D、E盘都行,安装后检查是否安装成功…

“身份验证失败” authentication failed报错的原因

问题描述 问题出在target “send_emai” 的password属性,我们认为输入的是邮箱的密码,即使是给出正确的密码仍报错的情况下,还是让大家输入正确的密码。结果呢? 这里的“password”输入的并不是密码,而是一种授权码&…

Servlet开发-session和cookie理解案例-登录页面

项目展示 进入登录页面,输入正确的用户名和密码以后会自动跳到主页 登录成功以后打印用户名以及上次登录的时间,如果浏览器和客户端都保存有上次登录的信息,则不需要登录就可以进入主页 编码思路 1.首先提供一个登录的前端页面&…

使用MySQL聚合函数来聚合数据,结果发现有刺客...

问题: 使用MySQL聚合函数 group_concat 的坑! 现象: 我有个业务,需要将表中符合条件的数据行的id聚合成一个字符串,以供另外一张表的查询过滤。 SELECTx FROMt_A WHEREFIND_IN_SET(guan_lian,(SELECTgroup_concat( i…

毫米波V2I网络的链路层仿真研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

工时管理系统,一款灵活性强、轻量级工时记录和管理工具

一、开源项目简介 无鱼工时管理系统,是一款轻量级工时记录和管理工具,包括项目管理,工时上报,工时日报,工时统计等功能。 无鱼工时管理系统可通过员工工时上报的方式,来记录项目所花费的工时,…

分享74个Java源代码总有一个是你想要的

分享74个Java源代码总有一个是你想要的 链接:https://pan.baidu.com/s/1DfGiAF7Ipde-SKeHZJ7-jQ?pwd8888 提取码:8888 项目名称 Akaxin v0.5.4 B2C网站管理系统购物网 v1.5 B3LOG Solo v1.0.0 for MySQL belog博客程序 v1.1 CKFinder 文件管理器…

创建视图权限问题ora1031,ora1720

Ora-1031 使用sql查询无问题,创建视图告警ora-1031 根据文档Document 271587.1 递归对象权限中角色收回时,会造成权限断档 解决方法: 对该对象进行授权(尽量属主用户) Grant select on interface.Material_view_pa…

字符检测专题第二期:通用、简单、快速,见证AI字符识别的超能力!

随着科技的不断进步,OCR(光学字符识别)技术在工业应用中扮演着越来越重要的角色。 在实际生产中,OCR技术可在生产流程监控、自动化设备控制、品质控制和物流控制等方面发挥作用,提高生产流水线的产量和质量&#xff0c…

基于Android的学生考勤签到请假管理系统+全套文档+全套视频教程

【项目功能介绍】 功能列表: 本系统包含后台管理和前端app双端系统, 本系统包含三个角色: 管理员,老师,学生。后台管理员的功能包含: 登录, 退出, ,通知管理,课程管理,课表管理,请假管理,用户管理; app端功能, 老师功能: 登录,退出, 注册, 日历控制日期展示, 查看不…

【JUC系列-08】深入理解CyclicBarrier底层原理和基本使用

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

【超详细】超详细的Linux系统入门教程,超适合小白和想转网络安全行业的朋友学习。

二,Linux系统 2.1 window远程连接Linux系统 ## 语法:ssh 用户名ip地址 ## 比如:ssh root192.168.61.1312.2 简单指令总结 # 远程登录linux系统ssh root192.168.202.136 # 断开连接exit # 重启系统reboot 或者 shutdown -h now # 关机指令s…

05-前端基础CSS第三天

01-CSS三大特性之层叠性 1.CSS的三大特性 CSS有三个非常重要的三个特性:层叠性、继承性、优先级。 1.1 层叠性 相同选择器给设置相同的样式,此时一个样式就会**覆盖(层叠)**另一个冲突的样式。层叠性主要解决样式冲突的问题。…

容器化运维:构建高可用RabbitMQ集群的Docker Compose指南

容器化运维:构建高可用RabbitMQ集群的Docker Compose指南 前言RabbitMQ相关知识点❓:Exchanges中的类型有什么区别❓:policies是什么❓:策略如何设置 docker-compose 搭建RabbitMQ的集群创建docker-compose.yml文件创建rabbitmq.c…

Docker——认识并安装Docker(上篇)

Docker 一、Docker认识二、Docker功能1、更快速的交付和部署2、更高效的虚拟化3、更轻松的迁移和扩展4、更简单的管理Docker 和 VM 三、学习Docker前的必备知识1、环境配置2、虚拟化部署方式3、虚拟化优点4、虚拟化局限性5、容器与虚拟机的区别6、Docker为什么比VM快&#xff1…