Tip:1.我知道我做的不好,希望可以提意见或者指正,但请不要嘲讽,谢谢
2.代码是在黑窗口执行的
3.保存的sql文件中,我自己添加的创建语句
4.并不完善
数据库原理
课程设计报告
题 目:数据库酒店客房管理系统
提交时间: 2021/12/10
**目录**
第1章 需求分析 1
1.1 需求调查 1
1.2 系统功能分析 1
1.3 面对用户需求分析 2
第2章 面向对象分析和设计 5
第3章 数据库概念结构设计 7
第4章 数据库逻辑结构设计 8
第5章 数据库完整性设计 9
5.1 主键及唯一性索引 9
总结 9
酒店客房管理系统后台数据库
第1章 需求分析
1.1 需求调查
通过对各个用户的调查,该酒店客房管理系统有如下需求:
系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码, 数据备份,数据还原,注销等功能。
员工管理:实现工作人员管理人员对系统的管理,包括课酒店预定安排,报修审核,房间状态管理等功能。
基本信息:实现显示住户和预定房间的基本信息(包括入住时间和客房是否有故障,员工基本信息,住户基本信息)。
预定:实现在一定范围内用户预定房间,选择房间类型。
查询:包括实现员工查询,住户查询。住户查询包括自己的基本信息,自己的入住时间,费用等,员工查询包括查询自己的信息,自己所对接的客户需求等。
服务器配置:对它进行配置可以使得在其他电脑上也照常使用。这样不必每次都到数据库中去更改。
帮助系统:帮助系统为用户指明方向。
1.2 系统功能分析
预订管理:主要用于预约客房登记、记录入住时间、房间号、记录人员id、所需费用、查询、修改、维护、删除等常用功能等。
房间类型管理:用于对不同客房的类型排列为序号,并提供客房名称、不同级别的客房、房费变动(节假日增多、工作日的下调等)、有无WiFi显示等功能。
房间状态管理:用于对房间的排布和选择、记录着房间是否为空、可以容纳的人数。
员工管理:用于统计员工的员工编号,姓名以及联系方式。
客房报修管理:用于记录客房损坏或故障的反馈,并记录对应客房编号以及是否完成维修。
住户管理:用于登记住户自己的基本信息,自己的入住时间,费用等。
用户查询管理:用于给每个用户查询自己所住的房间的配设,以及楼层等信息。
图1.1 酒店客房管理系统功能结构图
1.3 面对用户需求分析
在酒店客房管理系统中,最主要的功能就是进行一系列的查询和各类数据的管理。因此,可以将酒店客房管理系统分为管理系统(有数据变化)和查询系统两个子系统。而在所设计的酒店客房管理系统中,主要有三类用户,即预定客房用户,在住用户员和系统管理员。各类用户在该系统中的需求不同,权限也不同。因此,为了更明确,更系统的了解用户需求,我们还可以将管理系统再细分为预订管理系统,房间类型管理系统,房间状态管理系统,员工管理系统,客房报修管理系统。同样,将查询系统也按用户职能进行细分,即员工查询系统,住户查询系统,预定查询系统。这样细分后,看似把系统需求繁杂化了。其实不然,细分后使各用户需求更加明确了,并且能更好的把握系统需求。
下面从细分后的各个子系统分析子系统的需求:
图1.2 酒店客房管理系统子系统结构图
第2章 面向对象分析和设计
酒店管理系统中涉及的各类对象及特征分析如下:
ER图还有什么优化呀什么的 我就不放了
接下来就是代码:
/*
Navicat MySQL Data Transfer
Source Server : MYSQL
Source Server Version : 50643
Source Host : 127.0.0.1:3306
Source Database : hotel
Target Server Type : MYSQL
Target Server Version : 50643
File Encoding : 65001
Date: 2021-12-06 10:53:45
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for booking
-- ----------------------------
DROP TABLE IF EXISTS `booking`;
CREATE TABLE `booking` (
`bid` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(5) NOT NULL,
`checkin` date NOT NULL,
`checkout` date NOT NULL,
`roomno` varchar(10) NOT NULL,
`billamount` int(11) NOT NULL,
`ispayment` int(11) NOT NULL,
PRIMARY KEY (`bid`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of booking
-- ----------------------------
INSERT INTO `booking` VALUES ('1', '2', '2017-04-10', '2017-04-13', 'LUX-007', '5000', '0');
INSERT INTO `booking` VALUES ('2', '2', '2017-04-10', '2017-04-12', 'LUX-008', '5000', '1');
INSERT INTO `booking` VALUES ('4', '2', '2017-04-04', '2017-04-06', 'LUX-013', '5000', '0');
INSERT INTO `booking` VALUES ('5', '2', '2017-04-03', '2017-04-04', 'LUX-010', '15000', '1');
INSERT INTO `booking` VALUES ('7', '3', '2017-04-04', '2017-04-05', ' LUX-008', '10000', '0');
INSERT INTO `booking` VALUES ('8', '3', '2017-04-04', '2017-04-06', 'DEL-011', '12000', '1');
INSERT INTO `booking` VALUES ('14', '3', '2017-04-05', '2017-04-06', 'DEL-012', '12000', '0');
INSERT INTO `booking` VALUES ('15', '3', '2017-04-10', '2017-04-13', 'COM-025', '8000', '1');
INSERT INTO `booking` VALUES ('16', '3', '2017-04-11', '2017-04-12', 'COM-021', '6000', '1');
INSERT INTO `booking` VALUES ('17', '3', '2017-04-13', '2017-04-14', 'COM-023', '6000', '1');
INSERT INTO `booking` VALUES ('18', '3', '2017-04-10', '2017-04-14', 'COM-026', '15000', '1');
INSERT INTO `booking` VALUES ('19', '3', '2017-04-06', '2017-04-07', 'COM-027', '3000', '0');
INSERT INTO `booking` VALUES ('20', '4', '2017-04-11', '2017-04-14', 'COM-028', '15000', '0');
-- ----------------------------
-- Table structure for categoty
-- ----------------------------
DROP TABLE IF EXISTS `categoty`;
CREATE TABLE `categoty` (
`cid` int(11) NOT NULL AUTO_INCREMENT,
`cname` varchar(50) NOT NULL,
`desc` varchar(110) NOT NULL,
`wifi` tinyint(1) NOT NULL,
`onecalldoc` tinyint(1) NOT NULL,
`isAC` tinyint(1) NOT NULL,
`isMWater` tinyint(1) NOT NULL,
`price` int(11) NOT NULL,
PRIMARY KEY (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of categoty
-- ----------------------------
INSERT INTO `categoty` VALUES ('1', 'Luxury Room', 'Full fledged room service.', '1', '1', '1', '1', '5000');
INSERT INTO `categoty` VALUES ('2', 'Deluxe Room', 'Medium Size Package', '1', '0', '1', '1', '3000');
INSERT INTO `categoty` VALUES ('3', 'Comfort Room', 'Room for Students', '0', '0', '1', '1', '2000');
-- ----------------------------
-- Table structure for repair
-- ----------------------------
DROP TABLE IF EXISTS `repair`;
CREATE TABLE `repair` (
`repairNO` varchar(10) NOT NULL COMMENT '报修编号',
`repairName` varchar(20) NOT NULL COMMENT '报修概要',
`repairDetail` varchar(150) DEFAULT NULL COMMENT '报修详细信息',
`dealWith` varchar(2) NOT NULL COMMENT '用来判断该报修是否已经被处理',
`roomid` varchar(5) NOT NULL COMMENT '房间号',
PRIMARY KEY (`repairNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='报修表';
-- ----------------------------
-- Records of repair
-- ----------------------------
INSERT INTO `repair` VALUES ('2010201', '厕所漏水', '房间厕所防水已坏了', '否', '22');
INSERT INTO `repair` VALUES ('2010301', '厕所漏水', '房间厕所防水已坏了', '否', '23');
INSERT INTO `repair` VALUES ('2010401', '厕所漏水', '房间厕所防水已坏了', '否', '24');
-- ----------------------------
-- Table structure for residents
-- ----------------------------
DROP TABLE IF EXISTS `residents`;
CREATE TABLE `residents` (
`bid` varchar(10) NOT NULL COMMENT '客户编号',
`residentsName` varchar(20) NOT NULL COMMENT '客户名称',
`residentsmobileno` varchar(150) DEFAULT NULL COMMENT '客户联系方式',
`roomid` varchar(10) NOT NULL COMMENT '客户所在房间号',
PRIMARY KEY (`bid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='客户表';
-- ----------------------------
-- Records of residents
-- ----------------------------
INSERT INTO `residents` VALUES ('18', 'aaa', '11111', '48');
INSERT INTO `residents` VALUES ('19', 'bbb', '22222', '49');
INSERT INTO `residents` VALUES ('20', 'ccc', '33333', '50');
-- ----------------------------
-- Table structure for room
-- ----------------------------
DROP TABLE IF EXISTS `room`;
CREATE TABLE `room` (
`roomid` int(11) NOT NULL AUTO_INCREMENT,
`roomname` varchar(50) NOT NULL,
`cid` int(5) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1',
`accomodation` varchar(50) NOT NULL,
PRIMARY KEY (`roomid`)
) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of room
-- ----------------------------
INSERT INTO `room` VALUES ('1', 'LUX-001', '1', '1', '1');
INSERT INTO `room` VALUES ('2', 'LUX-002', '1', '1', '1');
INSERT INTO `room` VALUES ('3', 'LUX-003', '1', '1', '1');
INSERT INTO `room` VALUES ('4', 'LUX-004', '1', '1', '1');
INSERT INTO `room` VALUES ('5', 'LUX-005', '1', '1', '2');
INSERT INTO `room` VALUES ('6', 'LUX-006', '1', '1', '2');
INSERT INTO `room` VALUES ('7', 'LUX-007', '1', '1', '2');
INSERT INTO `room` VALUES ('8', 'LUX-008', '1', '1', '2');
INSERT INTO `room` VALUES ('9', 'LUX-009', '1', '1', '3');
INSERT INTO `room` VALUES ('10', 'LUX-010', '1', '1', '3');
INSERT INTO `room` VALUES ('11', 'LUX-011', '1', '1', '3');
INSERT INTO `room` VALUES ('12', 'LUX-012', '1', '1', '3');
INSERT INTO `room` VALUES ('13', 'LUX-013', '1', '1', '4');
INSERT INTO `room` VALUES ('14', 'LUX-014', '1', '1', '4');
INSERT INTO `room` VALUES ('15', 'LUX-015', '1', '1', '4');
INSERT INTO `room` VALUES ('16', 'LUX-016', '1', '1', '4');
INSERT INTO `room` VALUES ('17', 'DEL-001', '1', '1', '1');
INSERT INTO `room` VALUES ('18', 'DEL-002', '2', '1', '1');
INSERT INTO `room` VALUES ('19', 'DEL-003', '2', '1', '1');
INSERT INTO `room` VALUES ('20', 'DEL-004', '2', '1', '1');
INSERT INTO `room` VALUES ('21', 'DEL-005', '2', '1', '2');
INSERT INTO `room` VALUES ('22', 'DEL-006', '2', '1', '2');
INSERT INTO `room` VALUES ('23', 'DEL-007', '2', '1', '2');
INSERT INTO `room` VALUES ('24', 'DEL-008', '2', '1', '2');
INSERT INTO `room` VALUES ('25', 'DEL-009', '2', '1', '3');
INSERT INTO `room` VALUES ('26', 'DEL-010', '2', '1', '3');
INSERT INTO `room` VALUES ('27', 'DEL-011', '2', '1', '3');
INSERT INTO `room` VALUES ('28', 'DEL-012', '2', '1', '3');
INSERT INTO `room` VALUES ('29', 'DEL-013', '2', '1', '4');
INSERT INTO `room` VALUES ('30', 'DEL-014', '2', '1', '4');
INSERT INTO `room` VALUES ('31', 'DEL-015', '2', '1', '4');
INSERT INTO `room` VALUES ('32', 'DEL-016', '2', '1', '4');
INSERT INTO `room` VALUES ('33', 'COM-001', '3', '1', '1');
INSERT INTO `room` VALUES ('34', 'COM-002', '3', '1', '1');
INSERT INTO `room` VALUES ('35', 'COM-003', '3', '1', '1');
INSERT INTO `room` VALUES ('36', 'COM-004', '3', '1', '1');
INSERT INTO `room` VALUES ('37', 'COM-005', '3', '1', '2');
INSERT INTO `room` VALUES ('38', 'COM-006', '3', '1', '2');
INSERT INTO `room` VALUES ('39', 'COM-007', '3', '1', '2');
INSERT INTO `room` VALUES ('40', 'COM-008', '3', '1', '2');
INSERT INTO `room` VALUES ('41', 'COM-009', '3', '1', '3');
INSERT INTO `room` VALUES ('42', 'COM-010', '3', '1', '3');
INSERT INTO `room` VALUES ('43', 'COM-011', '3', '1', '3');
INSERT INTO `room` VALUES ('44', 'COM-012', '3', '1', '3');
INSERT INTO `room` VALUES ('45', 'COM-023', '3', '1', '4');
INSERT INTO `room` VALUES ('46', 'COM-024', '3', '1', '4');
INSERT INTO `room` VALUES ('47', 'COM-025', '3', '1', '4');
INSERT INTO `room` VALUES ('48', 'COM-026', '3', '1', '4');
INSERT INTO `room` VALUES ('49', 'COM-027', '3', '1', '4');
INSERT INTO `room` VALUES ('50', 'COM-028', '3', '1', '4');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`pass` bigint(10) NOT NULL,
`mobileno` bigint(10) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('2', 'Hardik Tuvra', '123456', '9898050902');
INSERT INTO `user` VALUES ('3', 'Raj Kothari', '123456', '8347655770');
INSERT INTO `user` VALUES ('4', 'Mit', '123456', '9898805508');
黑窗口的运行图我就不放上来了 我试过可以在黑窗口处直接导入的
还有我用的是机房(学校的电脑 MySQL56的好像是)
欢迎指正
谢谢