写在前面

  • 一、环境配置
  • 二、数据库设计
    • 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. 用原生 js jquery 实现知乎收起答案功能
  2. 案例驱动python编程入门-python实现事件驱动
  3. java try catch 异常后还会继续执行吗
  4. 【slighttpd】基于lighttpd架构的Server项目实战(7)—http-parser
  5. C++ opengl 绘制三角形扇
  6. 【汇编优化】之x86架构intrinsic优化
  7. 五大步完成JBOSS 5 多数据库的多数据源配置
  8. 《Arduino家居安全系统构建实战》——2.3 组合多个单词
  9. Centos6.5安装tocmat7 配置以及优化
  10. jdk命令行工具:jstat与jmap
  11. vs2010开发activex(MFC)控件/ie插件(一)
  12. Android TTS 自动发声
  13. Chrome 渲染分析之 Rendering 工具使用
  14. 8代9代cpu平台改换win7的实践经验!
  15. Hbase——常见错误
  16. 能够修改证件照的软件有哪些?分享两种好用的修改工具
  17. java固件包_iOS13 各版本固件下载地址以及更新方法
  18. java 高内聚低耦合_高内聚低耦合法则实例解析
  19. vue组件化的理解与定义
  20. chatgpt赋能Python-python_hanning

热门文章

  1. 计算机网络的应用领域有那些,计算机网络应用领域
  2. 官方FastReport 2021最新中文开发者指南
  3. 奔图打印机显示未连接_打印机无法打印的10种解决方法
  4. html嵌入百度地图无法显示
  5. ResourceBundle 中文乱码
  6. mcafee杀死oracle,【搬运】跟客服要来的迈克菲卸载工具,拯救你的笔记本
  7. HTML系列之多媒体音频标签 audio
  8. 游戏资源提取软件介绍
  9. java中的前加加 和 后加加
  10. 苹果NFC功能以及Apple Pay的初探