二手房中介管理系统设计
目录
数据库应用项目开发课程设计报告
二手房中介管理系统设计与管理
一、二手房中介管理系统需求分析
1、系统概述
2、系统功能设想
二、二手房中介管理系统概念设计
1、实体
2、 系统局部E-R图
3、系统全局E-R图
三、二手房中介管理系统的逻辑设计
1、E-R图到关系模式的转换
3、 关系模式的规范化及调整
四、二手房中介管理系统的数据库设计
1、数据库设计
2、数据表设计
3、 视图设计
4、触发器设计
5、数据库恢复
二手房中介管理系统
- 实现房屋户型、房东信息的管理;
- 实现租房客户信息的管理;
- 实现房屋的出租、归还登记;
- 实现租房收费管理;
- 创建存储过程统计各种户型的房屋的出租数量;
- 创建触发器,当房屋租出时自动修改该房屋的状态;
- 创建视图查询当前所有房屋的房号、房东、状态信息;
- 建立数据库相关表之间的参照完整性约束。
一、二手房中介管理系统需求分析
1、系统概述
二十世纪,随着我国的市场经济的蓬勃发展,房价也在不断地攀升,越来越多的房地产业开发,人们会去换新的房子,就有了一些闲置的房子。然而,对于一些刚刚步入社会的大学生,自身尚未具备购买新房的能力,对于一些求学学子,更加方便的寻求学区房也成了一大问题,在外地工作求得离公司近的房子也是必不可少的,为了更加方便,二手房中介行业也就越来越受到广大群众的需要,开发二手房中介管理系统,可以方便房产中介部门管理和客户查询检索,可以让需求者得到最大的利益。要想在激烈的市场上谋取一位,必须加强内部管理,提高运营效率,二手房中介管理系统是不可缺少的信息化管理机制。综合考虑房源空间信息,开发一个坚持客户利益优先的二手房中介信息系统是非常有必要的。
2、系统功能设想
二手房中介管理系统,主要包括7个模块:分别为管理员工信息、房客信息、房东信息、房屋信息、意向信息、归还信息,收费信息。这7个个模块都包括增删改查的基础功能;系统总体来说,为以下几部分:
- 房东:查询修改姓名、性别等相关信息
- 房客:可以查询修改姓名、性别、意向等相关信息
- 员工:员工登录可以进行添加、修改、删除和查询用户信息、也可以修改与维护房屋信息,记录每间房屋的收费。
- 房屋:房屋查询可以进行查询、修改房屋户型、面积、价格等相关信息
- 费用:收费管理可以记录房东、房屋、员工、具体金额等相关信息。
- 归还:归还信息记录房屋的归还记录,包括归还日期,归还所属房东等
- 意向:意向管理可以记录和显示房客要租房的户型、价格、面积等
同时,系统有房屋基本状态的试图,可以方便地查询各个房屋是否出租的状态情况,创建储存功能,可以让管理员统计出各种户型的房屋的出租数量。并且在收费信息表中创建触发器,可以将已经租出去的房屋信息表中的房屋状态从“待租”变为“已租”,同时在房屋归还信息表中创建触发器,当增加归还信息时,将房屋状态改为“待租”。
图1 二手房中介管理系统功能结构图
二、二手房中介管理系统概念设计
1、实体
E-R图中的关联必须是实体之间的关联,属性不能和其他实体有关联;属性必须是不可分的数据项,即属性中不能包括其它的属性或者实体。由此分析,可以抽象得到的实体为以下7个:
实体:
- 房东信息
- 房客信息
- 房屋归还信息
- 房屋信息
- 意向信息
- 收费信息
- 员工信息
属性:
- 房东信息的属性有:房东编号、房东姓名、性别、联系号码、身份证号、记录日期
- 房客信息的属性有:房客编号、房客姓名、性别、联系号码、身份证号、记录日期
- 房屋归还信息的属性有:归还编号、归还日期
- 房屋信息的属性有:房屋编号、房屋名称、户型、状态、价格、面积
- 意向信息的属性有:意向编号、户型、楼层编号、价格、用途、面积
- 收费信息的属性有:费用编号、金额、付款日期
- 员工信息的属性有:员工ID、员工姓名、性别、出生日期、联系方式、身份证号
图2 “房客信息—收费信息”局部E-R图
图3 “房东信息”局部E-R图
图4 “归还信息—房屋信息”局部E-R图
图5“意向信息”局部E-R图
图6 “员工信息”局部E-R图
3、系统全局E-R图
图7 全局E-R图
三、二手房中介管理系统的逻辑设计
1、E-R图到关系模式的转换
房东信息(房东编号,房东姓名,性别,联系号码,身份证号,记录日期)
房客信息(房客编号,房客姓名,性别,联系号码、身份证号、记录日期)
房屋归还(归还编号,归还日期)
房客退房(房客编号,归还编号,房屋编号,归还日期)
房东收房(房东编号,归还编号,房屋编号,房客编号,归还日期)
房屋信息(房屋编号,房屋名称,户型,状态,价格,面积)
意向信息(意向编号,户型,楼层编号,价格,用途,面积)
收费信息(费用编号,金额,付款日期)
员工记录(员工编号,员工姓名,付款日期,费用编号,房东编号,房客编号)
员工信息(员工编号,员工姓名,性别,联系方式,身份证号)
关系范式中的主键重复度越高,列的空间冗余越高,由于在查询过程中,如果需要查询某一特定内容,就必须连接很多表,费时费力,而且可以有效的消除异常(比如插入异常,更新异常,删除异常),而且可以将数据的组织变得更加和谐。所以我选将房东的收房,房客退房统一合并到房屋归还里,将员工记录的收费信息,合并到收费信息表里,这样在查询中,就可以更加方便快捷,也省了多个表的联立。所以我将ER图得到的关系模式调整成以下关系模式:
员工信息(员工编号,员工姓名,性别,联系方式,身份证号)
收费信息(费用编号,金额,员工编号,员工姓名,房屋编号,付款日期,房东编号,房客编号)
房东信息(房东编号,房东姓名,房屋编号,性别,联系号码,身份证号,记录日期)
房客信息(房客编号,房客姓名,性别,联系号码,身份证号,记录日期)
房屋信息(房屋编号,房屋名称,户型,面积,状态,价格,房东编号)
意向信息(意向编号,房客编号,户型,楼层编号,价格,面积)
房屋归还信息(归还编号,房屋编号,房客编号,归还日期)
四、二手房中介管理系统的数据库设计
1、数据库设计
创建数据库“二手房中介管理系统”如图下所示:
图8 系统数据库的建立
2、数据表设计
(1)表汇总,如表1所示
表名 |
功能说明 |
Manager |
存储员工信息 |
Charge |
存储收费信息 |
Landlord |
存储房东信息 |
Tenant |
存储房客信息 |
House |
存储房屋信息 |
Idea |
存储意向信息 |
Back |
存储归还信息 |
表1 二手房中介系统表汇总
(2)详细表设计
create table Manager(/*员工(员工编号,姓名,性别,身份证号,联系方式)*/
man_id varchar(10) primary key,
man_name varchar(20) not null,
man_sex varchar(5) check(man_sex='男' or man_sex='女'),
man_number varchar(20) not null,
man_tel varchar(20) not null,
);
表名 |
Manager |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
man_id |
员工ID |
varchar |
10 |
主码 |
否 |
man_name |
员工姓名 |
varchar |
20 |
无 |
否 |
man_sex |
性别 |
varchar |
5 |
无 |
否 |
man_number |
身份证号 |
varchar |
20 |
无 |
否 |
man_tel |
联系方式 |
varchar |
20 |
无 |
否 |
表2 Manager表
create table Landlord(/*房东(房东编号,房屋编号,姓名,性别,身份证号,联系方式,日期)*/
lan_id varchar(10) primary key,
lan_name varchar(20) not null,
lan_sex varchar(5) check (lan_sex='男' or lan_sex='女'),
lan_number varchar(20) not null,
lan_tel varchar(20) not null,
hou_id varchar(10) not null,
hou_day datetime not null,
foreign key(lan_id) references House(hou_id)
);
表名 |
Landlord |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
lan_id |
房东编号 |
varchar |
10 |
主码 |
否 |
lan_name |
房东姓名 |
varchar |
20 |
无 |
否 |
lan_sex |
性别 |
varchar |
5 |
无 |
否 |
lan_number |
身份证号 |
varchar |
20 |
无 |
否 |
lan_tel |
联系方式 |
varchar |
20 |
无 |
否 |
hou_id |
房屋编号 |
varchar |
10 |
外码 |
否 |
hou_day |
记录日期 |
datetime |
无 |
否 |
表3 Landlord表
create table Tenant(/*房客(房客编号,姓名,性别,身份证号,联系方式,日期)*/
ten_id varchar(10) primary key,
ten_name varchar(20) not null,
ten_sex varchar(5) check (ten_sex='男' or ten_sex='女'),
lan_number varchar(20) not null,
lan_tel varchar(20) not null,
ten_day datetime not null,
);
表名 |
Tenant |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
ten_id |
房客编号 |
varchar |
10 |
主码 |
否 |
ten_name |
房客姓名 |
varchar |
20 |
无 |
否 |
ten_sex |
性别 |
varchar |
5 |
无 |
否 |
ten_number |
身份证号 |
varchar |
20 |
无 |
否 |
ten_tel |
联系方式 |
varchar |
20 |
无 |
否 |
ten_day |
记录日期 |
datetime |
无 |
否 |
表4 Tenant表
create table House(/*房屋(房屋编号,姓名,户型,状态,价格,面积,房东编号)*/
hou_id varchar(10) primary key,
hou_name varchar(20) not null,
hou_type varchar(20) not null,
hou_state varchar(20) not null,
hou_price varchar(20) not null,
hou_area varchar(20) not null,
lan_id varchar(20) not null,
foreign key(hou_id) references Landlord(lan_id)
);
表名 |
House |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
hou_id |
房屋编号 |
varchar |
10 |
主码 |
否 |
hou_name |
房屋姓名 |
varchar |
20 |
无 |
否 |
hou_type |
房屋户型 |
varchar |
20 |
无 |
否 |
hou_state |
房屋状态 |
varchar |
20 |
无 |
是 |
hou_price |
价格 |
varchar |
20 |
无 |
否 |
hou_area |
面积 |
varchar |
20 |
无 |
否 |
lan_id |
房东ID |
varchar |
20 |
外码 |
否 |
表5 House表
create table Charge(/*费用(费用编号,金额,付款日期,员工编号,员工姓名,房屋编号,房东编号,房客编号)*/
ch_id varchar(10) primary key,
ch_price varchar(20) not null,
ch_day datetime not null,
man_id varchar(10) not null,
man_name varchar(20) not null,
hou_id varchar(10) not null,
lan_id varchar(10) not null,
ten_id varchar(10) not null,
foreign key(ch_id) references House(hou_id),
foreign key(ch_id) references Manager(man_id),
foreign key(ch_id) references Landlord(lan_id),
foreign key(ch_id) references Tenant(ten_id)
);
表名 |
Charge |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
ch_id |
费用编号 |
varchar |
10 |
主码 |
否 |
ch_price |
金额 |
varchar |
20 |
无 |
否 |
man_id |
员工编号 |
varchar |
10 |
外码 |
否 |
man_name |
员工姓名 |
varchar |
20 |
无 |
否 |
hou_id |
房屋编号 |
varchar |
10 |
外码 |
否 |
ch_day |
付款日期 |
datetime |
无 |
否 |
|
lan_id |
房东编号 |
varchar |
10 |
外码 |
否 |
ten_id |
房客编号 |
varchar |
10 |
外码 |
否 |
表6 Charge表
create table Idea(/*意向(意向编号,房客编号,户型,楼层编号,价格,面积)*/
id_id varchar(10) primary key,
id_type varchar(20) not null,
id_floor varchar(20) not null,
id_price varchar(20) not null,
id_area varchar(20) not null,
ten_id varchar(10) not null,
foreign key(id_id) references Tenant(ten_id)
);
表名 |
Idea |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
id_id |
意向ID |
varchar |
10 |
主码 |
否 |
ten_id |
房客ID |
varchar |
10 |
外码 |
否 |
id_type |
户型 |
varchar |
20 |
无 |
否 |
id_floor |
楼层编号 |
varchar |
20 |
无 |
否 |
id_price |
价格 |
varchar |
20 |
无 |
否 |
id_area |
面积 |
varchar |
20 |
无 |
否 |
表7 idea表
create table Back(/*归还(房屋编号,房客编号,归还编号,归还日期)*/
ba_id varchar(10) primary key,
lan_id varchar(10) not null,
ten_id varchar(10) not null,
ba_day datetime not null,
);
表名 |
Back |
||||
列名 |
列名说明 |
数据类型 |
长度 |
主码、外码 |
是否允许空值 |
lan_id |
房东ID |
varchar |
10 |
无 |
否 |
ten_id |
房客ID |
varchar |
10 |
无 |
否 |
ba_day |
归还日期 |
datetime |
无 |
否 |
|
ba_id |
归还编号 |
varchar |
20 |
主码 |
否 |
表8 back表
- 视图汇总
视图名 |
功能说明 |
House_View |
查询当前房屋编号、房东以及状态信息 |
Money_View |
租房屋编号以及收费信息 |
Home_View |
查询系统所有二手房 |
表9 视图汇总表
- 创建视图查询当前的房屋编号、房东以及状态信息
create view House_View (房屋编号,房东编号,房屋状态)
as
select House.hou_id,Landlord.lan_id,House.hou_state
from House,Landlord
where Landlord.lan_id =House.hou_id
Go
图9 House_View视图查询
列名 |
列名说明 |
房屋编号 |
所租房子 |
房东编号 |
房屋所属人 |
房屋状态 |
房屋当前是“待租”还是“已租” |
表10 House_View视图
- 创建视图查询当前的出租房屋编号以及收费信息
create view Money_View (房屋编号,房客编号,收费信息)
as
select House.hou_id,Landlord.lan_id,Tenant.ten_id
from House,Landlord ,Tenant
where Landlord.lan_id =House.hou_id
Go
图10 Money_View视图查询
列名 |
列名说明 |
房屋编号 |
所租房子 |
房客编号 |
租客 |
收费信息 |
房子当前的费用 |
表11 House_View视图
- 创建视图查询当前二手房市场里的房子
create view home_View(房型,状态,面积)
as
select House.hou_type,House.hou_state,House.hou_area
from House
go
图11 home_View视图查询
列名 |
列名说明 |
房型 |
房子类型 |
状态 |
当前市场情况 |
面积 |
房子面积 |
表12 home_View视图
4、触发器设计
(1)创建存储过程统计各种户型的房屋的出租数量
create procedure 统计出租数量
as
select hou_type,hou_state,count(hou_id) as 统计
from House
where hou_state='已租'
group by hou_type,hou_state
- 储存过程
declare @return_value int
exec @return_value=统计出租数量
select 'Rrturn Value'=@return_value
Go
- 创建触发器,当房屋被租出时,修改房屋状态为“已租”
create TRIGGER 修改房屋状态
on Charge
after insert
as
BEGIN
update House set hou_state='已租'
where hou_id=(select hou_id from inserted)
SET NOCOUNT ON;
select *from inserted
select *from House
END
触发器名称:修改房屋状态
触发器作用:当房屋被租出时,修改房屋状态为“已租”(如下图所示)
图11
- 创建触发器,当房屋被归还时,修改房屋状态为“待租”
go
CREATE TRIGGER 归还状态
on Back
after insert
as
begin
update House set hou_state='待租'
where hou_id=(select hou_id from inserted)
SET NOCOUNT ON;
select *from inserted
select *from House
END
触发器名称:归还状态
触发器作用:当房屋被归还时,修改房屋状态为“待租”(如下图所示)
图12
5、数据库恢复
数据库的备份:
图10
还原数据库:
图11
二手房中介管理系统设计相关推荐
- 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw ...
- 计算机毕业设计ssm校园竞赛管理系统设计与实现hyr9b系统+程序+源码+lw+远程部署
计算机毕业设计ssm校园竞赛管理系统设计与实现hyr9b系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:L ...
- 毕业季基于ssm框架的管理系统设计与实现如何写开题报告,怎么完成设计
1.SSM框架简介 SSM框架是Spring MVC ,Spring和Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View层,Controller层,Service层,DAO层四层, ...
- 计算机毕业设计Java某日杂商店进销存管理系统设计(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java某日杂商店进销存管理系统设计(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java某日杂商店进销存管理系统设计(源码+系统+mysql数据库+lw文档) 本源码技术栈 ...
- 计算机毕业设计JavaBS景区票务管理系统设计与实现(源码+系统+mysql数据库+lw文档)
计算机毕业设计JavaBS景区票务管理系统设计与实现(源码+系统+mysql数据库+lw文档) 计算机毕业设计JavaBS景区票务管理系统设计与实现(源码+系统+mysql数据库+lw文档) 本源码技 ...
- [附源码]Java计算机毕业设计SSM房屋中介管理信息系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- ssm基于SSM的南昌旅游网站管理系统设计与实现 毕业设计源码101407
南昌旅游网站管理系统 摘要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 南昌旅游网站管理系统设计,主要的模块包括查看首页.公告内容(轮播 ...
- 基于SSM的南昌旅游网站管理系统设计与实现 毕业设计源码101407
南昌旅游网站管理系统 摘要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 南昌旅游网站管理系统设计,主要的模块包括查看首页.公告内容(轮播 ...
- java毕业设计房屋中介管理Mybatis+系统+数据库+调试部署
java毕业设计房屋中介管理Mybatis+系统+数据库+调试部署 java毕业设计房屋中介管理Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...
最新文章
- 一文了解Python常见的序列化操作
- .net实现md5加密 sha1加密 sha256加密 sha384加密 sha512加密 des加密解密
- 用C++的类重载高精度加法,乘法和等于符号
- 空服务器安装linux,debian服务器linux服务器web建站搭建linux服务器之Debian安装
- MATLAB中K-means函数表达方式
- 配置FTP服务2(vsftpd 配置虚拟账号)
- html 替代table,Iframe的缺点,div或者table成为替代者
- python中基本运算符_Python中的基本运算符及示例
- Django web框架-----Django连接本地现有mysql数据库
- java 集合对象转map的几种方式(stream流)
- appium 配置 打开应用闪退
- MySQL 部门员工工资表 综合练习
- 海岛奇兵服务器维护中怎么办,海岛奇兵无法更新解决方法介绍
- EffectiveC++-读后感
- 如何友好提示vue3.0不再支持IE11及以下的浏览器版本
- 案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接
- Power BI——EARLIER 函数(对行操作)
- 怎么实现全国IP自动更换?
- 程序员需知的 59 个网站
- python实现同时显示两条曲线_python matlibplot绘制多条曲线图
热门文章
- 玄铁杯第二届RISC-V应用创新大赛火热报名中
- 【思特奇杯·云上蓝桥-算法集训营】第1周——了解算法与数据结构
- 预测移动用户人口属性的Kaggle竞赛作品解析
- 【好用的办公软件】万彩办公大师教程丨标准安装版/绿色免安装版/离线版区别
- acer switch 10 linux,【AcerSwitch10评测】高颜值的2in1电脑 Acer Switch 10评测(全文)_Acer Switch 10_笔记本评测-中关村在线...
- 电话簿程序设计c语言,电话簿管理程序设计.doc
- Vue - 调用接口导出 excel 表格至本地
- Lumerical MODE solution FBG光栅透射谱的仿真,官网fbg.lms例子的详解
- SSE指令集加速运算
- 身份信息认证服务器,在线身份认证解决方案