【数据库课程设计】mysql+jsp实现房屋租赁管理系统(数据库部分)


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

一、环境配置

  1. mysql版本:8.0.29 下载链接
  2. IDEA版本:ideaIU 2022.1.1
  3. Tomcat版本:apache-tomcat-9.0.63

二、数据库设计

1.系统说明书

(1)系统要求

某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者信息,以便快速地提供租赁服务。该系统具有以下功能:

  • 登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话。
  • 登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。除此之外,还需登记房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能容纳的房客数、租金及房屋状态(待租赁、已出租)。一名房主可以在系统中登记多个待租赁的房屋。
  • 登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须事先在系统中登记个人信息,包括:姓名、住址、电话号码、身份证编号、性别。
  • 租赁房屋。已经在系统中登记的租赁者,可以得到一分系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录。
  • 收取手续费。每成功一次租赁服务,系统根据租赁价格按比例生成费用清单。
  • 变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态请求。
  • 用户论坛。租赁者在论坛上寻找合租对象、与房主进行交流。
  • 创建视图查询当前空闲的房屋的识别号、地址、房型、最多能容纳的房客数、租金、房主身份证号、房主姓名、房主联系电话。
  • 建立数据库相关表之间的参照完整性约束。

(2)E-R图

房屋租赁系统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;
  • 36
    点赞
  • 229
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.系统功能模块图:改进完善业务流程图,分析用户需要系统完成哪些任务,逐层分解,画出功能层次图。功能分析是要在设计过程中明确完成设计后的“淮南师范学院房屋租赁管理系统”所能具备的功能。 淮南师范学院房屋租赁管理系统的功能模块划分图为: 2.业务流程分析:描述系统的业务流程,画出规范的业务流程图 3.确定实体、联系及其属性,并确定主实体的主标识,画出ERD(不少于两个主实体,一个从实体,一个联系和24个属性);检查改正错误;对其中复杂的多元联系进行分析,必要则改进。 概念模型有以下几个主要特点: (1)能充分反映实际应用中的实体及其相互之间的联系,是现实世界的一个真实模型。 (2)由于概念模型独立于具体的计算机系统和具体的数据库管理系统,因此,便于用户理解,有利于用户积极参与设计工作。 (3)概念模型容易修改。当问题有变化时,反映实际问题的概念模型可以很方便地扩充和修改。 (4)便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。 概念结构设计要借助于某种方便又直观的描述工具,E-R(实体-联系,Entity-Relationship)图是设计概念模型的有力工具。在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下: 用矩形框表示实体,框内标明实体名; 用椭圆形框表示实体的属性,框内标明属性名; 用菱形框表示实体间的联系,框内标明联系名; 实体与其属性之间以无向边联接,菱形框与相关实体之间也用无向边联接,并无 向边旁标明联系的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值