目录

数据库应用项目开发课程设计报告

二手房中介管理系统设计与管理

一、二手房中介管理系统需求分析

1、系统概述

2、系统功能设想

二、二手房中介管理系统概念设计

1、实体

2、 系统局部E-R图

3、系统全局E-R图

三、二手房中介管理系统的逻辑设计

1、E-R图到关系模式的转换

3、 关系模式的规范化及调整

四、二手房中介管理系统的数据库设计

1、数据库设计

2、数据表设计

3、 视图设计

4、触发器设计

5、数据库恢复

二手房中介管理系统

  1. 实现房屋户型、房东信息的管理;
  2. 实现租房客户信息的管理;
  3. 实现房屋的出租、归还登记;
  4. 实现租房收费管理;
  5. 创建存储过程统计各种户型的房屋的出租数量;
  6. 创建触发器,当房屋租出时自动修改该房屋的状态;
  7. 创建视图查询当前所有房屋的房号、房东、状态信息;
  8. 建立数据库相关表之间的参照完整性约束。

一、二手房中介管理系统需求分析

1、系统概述

二十世纪,随着我国的市场经济的蓬勃发展,房价也在不断地攀升,越来越多的房地产业开发,人们会去换新的房子,就有了一些闲置的房子。然而,对于一些刚刚步入社会的大学生,自身尚未具备购买新房的能力,对于一些求学学子,更加方便的寻求学区房也成了一大问题,在外地工作求得离公司近的房子也是必不可少的,为了更加方便,二手房中介行业也就越来越受到广大群众的需要,开发二手房中介管理系统,可以方便房产中介部门管理和客户查询检索,可以让需求者得到最大的利益。要想在激烈的市场上谋取一位,必须加强内部管理,提高运营效率,二手房中介管理系统是不可缺少的信息化管理机制。综合考虑房源空间信息,开发一个坚持客户利益优先的二手房中介信息系统是非常有必要的。

2、系统功能设想

二手房中介管理系统,主要包括7个模块:分别为管理员工信息、房客信息、房东信息、房屋信息、意向信息、归还信息,收费信息。这7个个模块都包括增删改查的基础功能;系统总体来说,为以下几部分:

  1. 房东:查询修改姓名、性别等相关信息
  2. 房客:可以查询修改姓名、性别、意向等相关信息
  3. 员工:员工登录可以进行添加、修改、删除和查询用户信息、也可以修改与维护房屋信息,记录每间房屋的收费。
  4. 房屋:房屋查询可以进行查询、修改房屋户型、面积、价格等相关信息
  5. 费用:收费管理可以记录房东、房屋、员工、具体金额等相关信息。
  6. 归还:归还信息记录房屋的归还记录,包括归还日期,归还所属房东等
  7. 意向:意向管理可以记录和显示房客要租房的户型、价格、面积等

同时,系统有房屋基本状态的试图,可以方便地查询各个房屋是否出租的状态情况,创建储存功能,可以让管理员统计出各种户型的房屋的出租数量。并且在收费信息表中创建触发器,可以将已经租出去的房屋信息表中的房屋状态从“待租”变为“已租”,同时在房屋归还信息表中创建触发器,当增加归还信息时,将房屋状态改为“待租”。

                                        图1 二手房中介管理系统功能结构图

二、二手房中介管理系统概念设计

1、实体

E-R图中的关联必须是实体之间的关联,属性不能和其他实体有关联;属性必须是不可分的数据项,即属性中不能包括其它的属性或者实体。由此分析,可以抽象得到的实体为以下7个:

实体:

  • 房东信息
  • 房客信息
  • 房屋归还信息
  • 房屋信息
  • 意向信息
  • 收费信息
  • 员工信息

属性:

  • 房东信息的属性有:房东编号、房东姓名、性别、联系号码、身份证号、记录日期
  • 房客信息的属性有:房客编号、房客姓名、性别、联系号码、身份证号、记录日期
  • 房屋归还信息的属性有:归还编号、归还日期
  • 房屋信息的属性有:房屋编号、房屋名称、户型、状态、价格、面积
  • 意向信息的属性有:意向编号、户型、楼层编号、价格、用途、面积
  • 收费信息的属性有:费用编号、金额、付款日期
  • 员工信息的属性有:员工ID、员工姓名、性别、出生日期、联系方式、身份证号

  1. 系统局部E-R图

 

图2 “房客信息—收费信息”局部E-R图

 

图3 “房东信息”局部E-R图

 

 

 

图4 “归还信息—房屋信息”局部E-R图

 

图5“意向信息”局部E-R图

 

图6 “员工信息”局部E-R图

3、系统全局E-R图

 

图7 全局E-R图

三、二手房中介管理系统的逻辑设计

1、E-R图到关系模式的转换

房东信息(房东编号,房东姓名,性别,联系号码,身份证号,记录日期)

房客信息(房客编号,房客姓名,性别,联系号码、身份证号、记录日期)

房屋归还(归还编号,归还日期)

房客退房(房客编号,归还编号,房屋编号,归还日期)

房东收房(房东编号,归还编号,房屋编号,房客编号,归还日期)

房屋信息(房屋编号,房屋名称,户型,状态,价格,面积)

意向信息(意向编号,户型,楼层编号,价格,用途,面积)

收费信息(费用编号,金额,付款日期)

员工记录(员工编号,员工姓名,付款日期,费用编号,房东编号,房客编号)

员工信息(员工编号,员工姓名,性别,联系方式,身份证号)

  1. 关系模式的规范化及调整

   关系范式中的主键重复度越高,列的空间冗余越高,由于在查询过程中,如果需要查询某一特定内容,就必须连接很多表,费时费力,而且可以有效的消除异常(比如插入异常,更新异常,删除异常),而且可以将数据的组织变得更加和谐。所以我选将房东的收房,房客退房统一合并到房屋归还里,将员工记录的收费信息,合并到收费信息表里,这样在查询中,就可以更加方便快捷,也省了多个表的联立。所以我将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表

  1. 视图设计
  1. 视图汇总

视图名

功能说明

House_View

查询当前房屋编号、房东以及状态信息

Money_View

租房屋编号以及收费信息

Home_View

查询系统所有二手房

9 视图汇总表

  1. 创建视图查询当前的房屋编号、房东以及状态信息

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视图

  1. 创建视图查询当前的出租房屋编号以及收费信息

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视图

  1. 创建视图查询当前二手房市场里的房子

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

  1. 储存过程

declare @return_value int 

exec @return_value=统计出租数量

select 'Rrturn Value'=@return_value

Go

  1. 创建触发器,当房屋被租出时,修改房屋状态为“已租”

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

  1. 创建触发器,当房屋被归还时,修改房屋状态为“待租”

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

Logo

快速构建 Web 应用程序

更多推荐