写在前面

  • 一、环境配置
  • 二、数据库设计
    • 1.系统说明书
      • (1)系统要求
      • (2)E-R图
      • (3)数据流图
      • (4)数据结构
      • (5)关系模式
    • 2.数据库实施
      • (1)房主用户表
      • (2)租赁者用户表
      • (3)房屋表
      • (4)看房记录表
      • (5)收费记录表
      • (6)留言表
      • (7)空闲房屋视图
      • (8)已看房屋视图
      • (9)已租房屋视图

本文写于数据库课程设计结课后,总结了完整的数据库设计流程以供参考学习。

一、环境配置

  1. mysql版本:8.0.29 下载链接
  2. IDEA版本:ideaIU 2022.1.1
  3. 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实现房屋租赁管理系统(数据库部分)相关推荐

  1. python房屋租赁系统的设计与实现_房屋租赁管理系统数据库的设计与实现

    目:房屋租赁管理系统数据库的设计与实现 目录 1 系统概况 ...................................................................... ...

  2. mysql考勤数据库设计,mysql – 跟踪学生出勤的数据库设计

    我对数据库表的设计存在疑问,以跟踪学生的出勤情况.目前,我的桌上学生至少有4000名学生. 创建一个出勤数据库来跟踪他们的出勤率将近4000 * 30天* 12个月=> ~1,400,000行( ...

  3. php学生成绩管理系统,数据库使用MySQL,包括源代码和数据库SQL文件,具有学生和教师登录管理功能

    php学生成绩管理系统,数据库使用MySQL,包括源代码和数据库SQL文件,具有学生和教师登录管理功能 数据库SQL文件 /*Navicat Premium Data TransferSource S ...

  4. 基于ssm+mysql+jsp销售医药管理系统

    基于ssm+mysql+jsp销售医药管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.公告管理 3.生产管理 4.分店采购 5.出库管理 6.分店管理 7.商品管理 8.合同管理 9.会员管理 ...

  5. mysql workbench 从model建库_使用MySQL Workbench进行数据库设计——MySQL Workbench用法总结...

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/48318877 本文出自[我是干勾鱼的博客] 1 简单介绍 MySQL Workb ...

  6. 4.2 图书借阅系统数据库设计 --MySQL

    本文目录 前言 一.背景和需求分析 1.1 背景 1.2 信息需求 1.3 功能需求 管理员 学生 1.4 数据流图 二.概念结构设计 1. 抽象出系统实体 2. 局部E-R图 2.1 学生 E-R图 ...

  7. 物流系统数据库设计 MYSQL

    前些日子搞了一个物流系统,等有时间把数据库表设计的SQL传上来给大家看看,本人渣渣一枚,还请多多指教和包涵. 数据库是mysql具体表结构包括运单,部门,事故,用户,售后,权限相关,司机,车辆等. 这 ...

  8. 考试系统mysql数据库设计_《在线考试系统数据库设计与实现》.doc

    网上测试系统 PAGE28 / NUMPAGES29 西南财经大学 Southwestern University of Finance and Economics 课程实验报告 课程名称: 数据库 ...

  9. 如何设计mysql的表结构_数据库的数据表的结构是如何设计的?

    1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对 ...

  10. 数据库应用——MySQL基础知识和操作数据库

    这里写目录标题 初识MySQL 什么是数据库 数据库分类 MySQL简介 安装MYSQL win10安装 安装SQLyog 连接数据库 linux安装 使用Navicat Premium连接数据库 操 ...

最新文章

  1. MySQL5.7.19版本压缩包安装方式的一些坑
  2. 向模态窗体传递参数和获取返回值
  3. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)
  4. struts2_HelloWorld
  5. 阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录
  6. mysql查询索引位置_mysql索引在什么位置
  7. ASP.NET MVC多语言 仿微软网站效果
  8. 身高回归现象是否真的存在?
  9. jdbcTemplate注入过程
  10. java obix_Gson序列化多态对象列表
  11. 排队 (白雪公主与n个小矮人)
  12. 《Java从入门到放弃》框架入门篇:在MyEclipse中创建SpringBoot项目
  13. TNF1EGS4 OSN1800全新四路交换式千兆以太网处理板
  14. 定义通用分销渠道和通用产品组
  15. CSS 函数摘抄笔记1207
  16. mysql替代符号,mysql特殊符号
  17. 为自动驾驶技术服务的基础道路设施
  18. 英文歌曲:Battle Cry (变形金刚第四部主题曲)
  19. 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...
  20. 网络存储设备磁带机术语解释

热门文章

  1. 计算机维护测试工作,(人才测评)桌面运维工程师的招聘入职测评方案
  2. android网络框架OkHttp之get请求(源码初识)
  3. java 常用的时间相关转化
  4. #WPF#Dirkster.AvalonDock教程
  5. win11拉伸屏幕_win11系统出现拉伸屏幕问题修复办法
  6. linux解压win10iso,ISO文件的解压和WINISO問題
  7. 【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法
  8. 分享:世界机场代码(ICAO)[带经纬度]
  9. Windows10重装专业版和mysql缺少dll文件或找不到入口点DLLRegisterServer问题处理
  10. 基于MATLAB的车牌识别实现