【数据库设计】mysql+jsp实现房屋租赁管理系统(数据库部分)
写在前面
- 一、环境配置
- 二、数据库设计
- 1.系统说明书
- (1)系统要求
- (2)E-R图
- (3)数据流图
- (4)数据结构
- (5)关系模式
- 2.数据库实施
- (1)房主用户表
- (2)租赁者用户表
- (3)房屋表
- (4)看房记录表
- (5)收费记录表
- (6)留言表
- (7)空闲房屋视图
- (8)已看房屋视图
- (9)已租房屋视图
本文写于数据库课程设计结课后,总结了完整的数据库设计流程以供参考学习。
一、环境配置
- mysql版本:8.0.29 下载链接
- IDEA版本:ideaIU 2022.1.1
- Tomcat版本:apache-tomcat-9.0.63
二、数据库设计
1.系统说明书
(1)系统要求
某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者信息,以便快速地提供租赁服务。该系统具有以下功能:
- 登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话。
- 登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。除此之外,还需登记房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能容纳的房客数、租金及房屋状态(待租赁、已出租)。一名房主可以在系统中登记多个待租赁的房屋。
- 登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须事先在系统中登记个人信息,包括:姓名、住址、电话号码、身份证编号、性别。
- 租赁房屋。已经在系统中登记的租赁者,可以得到一分系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录。
- 收取手续费。每成功一次租赁服务,系统根据租赁价格按比例生成费用清单。
- 变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态请求。
- 用户论坛。租赁者在论坛上寻找合租对象、与房主进行交流。
- 创建视图查询当前空闲的房屋的识别号、地址、房型、最多能容纳的房客数、租金、房主身份证号、房主姓名、房主联系电话。
- 建立数据库相关表之间的参照完整性约束。
(2)E-R图
(3)数据流图
(4)数据结构
1、Owner_users(房主用户)数据结构:
House_owner=房主用户编号+用户名称+密码+真实姓名+住址+联系电话
2、Tenant_users(租赁者用户)数据结构:
Tenant_users=租赁者用户编号+用户名称+密码+真实姓名+住址+联系电话+性别
3、House(房屋)数据结构:
House=识别号+地址+房型+容量+租金+房屋状态+房主用户编号
4、Record(看房记录)数据结构:
Record=看房记录编号+租赁者用户编号+房屋识别号
5、Charge(收费记录)数据结构:
Charge=收费记录编号+金额+记录编号
6、Message(留言)数据结构:
Message=留言编号+留言内容+留言时间+房主用户编号+租赁者用户编号
(5)关系模式
根据E-R图向关系模型的转换原则,房屋租赁管理系统的E-R图可以转换为下列关系模式:
- Owner_users(OID,userName,password,OName,OAddress,OTelephone),主码OID,无外码
- Tenant_users(TID,userName,password,TName,TAddress,TTelephone,TSex),主码TID,无外码
- House(HID,HAddress,layout,capacity,rent,con,OID),主码HID,外码OID
- Record(RID,TID,HID),主码RID,外码TID,HID
- Charge(CID,amount,RID),主码CID,外码RID
- Message(MID,content,createDate,OID,TID),主码MID,外码OID,TID
2.数据库实施
(1)房主用户表
CREATE TABLE Owner_users (OID INT AUTO_INCREMENT PRIMARY KEY,userName CHAR ( 10 ) NOT NULL,password BLOB NOT NULL,OName VARCHAR ( 10 ) NOT NULL,OAddress VARCHAR ( 30 ) NOT NULL,OTelephone VARCHAR ( 20 ) NOT NULL);
(2)租赁者用户表
CREATE TABLE Tenant_users (TID INT AUTO_INCREMENT PRIMARY KEY,userName CHAR ( 10 ) NOT NULL,password BLOB NOT NULL,TName VARCHAR ( 10 ) NOT NULL,TAddress VARCHAR ( 30 ) NOT NULL,TTelephone VARCHAR ( 20 ) NOT NULL,TSex ENUM('男','女') DEFAULT '男');
(3)房屋表
CREATE TABLE House (HID INT AUTO_INCREMENT PRIMARY KEY,HAddress CHAR ( 30 ) NOT NULL,layout VARCHAR ( 10 ) NOT NULL,capacity INT NOT NULL,rent INT NOT NULL,con TINYINT NOT NULL,OID INT NOT NULL,FOREIGN KEY ( OID ) REFERENCES Owner_users( OID ));
(4)看房记录表
CREATE TABLE Record (RID INT AUTO_INCREMENT PRIMARY KEY,TID INT NOT NULL,HID INT NOT NULL,FOREIGN KEY ( TID ) REFERENCES Tenant_users ( TID ),FOREIGN KEY ( HID ) REFERENCES House ( HID ));
(5)收费记录表
CREATE TABLE Charge(CID INT AUTO_INCREMENT PRIMARY KEY,amount DOUBLE NOT NULL,RID INT NOT NULL,FOREIGN KEY ( RID ) REFERENCES Record ( RID ));
(6)留言表
CREATE TABLE Message(MID INT AUTO_INCREMENT PRIMARY KEY,content VARCHAR( 500 ) NOT NULL,createDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,OID INT,TID INT,FOREIGN KEY ( OID ) REFERENCES Owner_users ( OID ),FOREIGN KEY ( TID ) REFERENCES Tenant_users ( TID ));
(7)空闲房屋视图
CREATE VIEW Vacant_house(HID,HAddress,layout,capacity,rent,OID,OName,OTelephone)
AS
SELECT HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone
FROM House,Owner_users
WHERE House.OID = Owner_users.OID AND House.con = 0;
(8)已看房屋视图
CREATE VIEW Seen_house(RID,HID,HAddress,layout,capacity,rent,OID,OName,OTelephone,TID)
AS
SELECT RID,House.HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone,Tenant_users.TID
FROM House,Tenant_users,Record,Owner_users
WHERE House.HID = Record.HID AND Tenant_users.TID = Record.TID AND House.OID = Owner_users.OID;
(9)已租房屋视图
CREATE VIEW Rented_house(CID,TID,HID,HAddress,layout,capacity,rent,OID,OName,OTelephone,amount)
AS
SELECT CID,TID,House.HID,HAddress,layout,capacity,rent,House.OID,OName,OTelephone,amount
FROM House,Charge,Owner_users,Record
WHERE Charge.RID = Record.RID AND Record.HID = House.HID AND Owner_users.OID = House.OID;
【数据库设计】mysql+jsp实现房屋租赁管理系统(数据库部分)相关推荐
- python房屋租赁系统的设计与实现_房屋租赁管理系统数据库的设计与实现
目:房屋租赁管理系统数据库的设计与实现 目录 1 系统概况 ...................................................................... ...
- mysql考勤数据库设计,mysql – 跟踪学生出勤的数据库设计
我对数据库表的设计存在疑问,以跟踪学生的出勤情况.目前,我的桌上学生至少有4000名学生. 创建一个出勤数据库来跟踪他们的出勤率将近4000 * 30天* 12个月=> ~1,400,000行( ...
- php学生成绩管理系统,数据库使用MySQL,包括源代码和数据库SQL文件,具有学生和教师登录管理功能
php学生成绩管理系统,数据库使用MySQL,包括源代码和数据库SQL文件,具有学生和教师登录管理功能 数据库SQL文件 /*Navicat Premium Data TransferSource S ...
- 基于ssm+mysql+jsp销售医药管理系统
基于ssm+mysql+jsp销售医药管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.公告管理 3.生产管理 4.分店采购 5.出库管理 6.分店管理 7.商品管理 8.合同管理 9.会员管理 ...
- mysql workbench 从model建库_使用MySQL Workbench进行数据库设计——MySQL Workbench用法总结...
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/48318877 本文出自[我是干勾鱼的博客] 1 简单介绍 MySQL Workb ...
- 4.2 图书借阅系统数据库设计 --MySQL
本文目录 前言 一.背景和需求分析 1.1 背景 1.2 信息需求 1.3 功能需求 管理员 学生 1.4 数据流图 二.概念结构设计 1. 抽象出系统实体 2. 局部E-R图 2.1 学生 E-R图 ...
- 物流系统数据库设计 MYSQL
前些日子搞了一个物流系统,等有时间把数据库表设计的SQL传上来给大家看看,本人渣渣一枚,还请多多指教和包涵. 数据库是mysql具体表结构包括运单,部门,事故,用户,售后,权限相关,司机,车辆等. 这 ...
- 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc
网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...
- 如何设计mysql的表结构_数据库的数据表的结构是如何设计的?
1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...
- 数据库应用——MySQL基础知识和操作数据库
这里写目录标题 初识MySQL 什么是数据库 数据库分类 MySQL简介 安装MYSQL win10安装 安装SQLyog 连接数据库 linux安装 使用Navicat Premium连接数据库 操 ...
最新文章
- MySQL5.7.19版本压缩包安装方式的一些坑
- 向模态窗体传递参数和获取返回值
- 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)
- struts2_HelloWorld
- 阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录
- mysql查询索引位置_mysql索引在什么位置
- ASP.NET MVC多语言 仿微软网站效果
- 身高回归现象是否真的存在?
- jdbcTemplate注入过程
- java obix_Gson序列化多态对象列表
- 排队 (白雪公主与n个小矮人)
- 《Java从入门到放弃》框架入门篇:在MyEclipse中创建SpringBoot项目
- TNF1EGS4 OSN1800全新四路交换式千兆以太网处理板
- 定义通用分销渠道和通用产品组
- CSS 函数摘抄笔记1207
- mysql替代符号,mysql特殊符号
- 为自动驾驶技术服务的基础道路设施
- 英文歌曲:Battle Cry (变形金刚第四部主题曲)
- 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...
- 网络存储设备磁带机术语解释
热门文章
- 计算机维护测试工作,(人才测评)桌面运维工程师的招聘入职测评方案
- android网络框架OkHttp之get请求(源码初识)
- java 常用的时间相关转化
- #WPF#Dirkster.AvalonDock教程
- win11拉伸屏幕_win11系统出现拉伸屏幕问题修复办法
- linux解压win10iso,ISO文件的解压和WINISO問題
- 【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
- 分享:世界机场代码(ICAO)[带经纬度]
- Windows10重装专业版和mysql缺少dll文件或找不到入口点DLLRegisterServer问题处理
- 基于MATLAB的车牌识别实现