二手房中介管理系统.docx
《二手房中介管理系统.docx》由会员分享,可在线阅读,更多相关《二手房中介管理系统.docx(25页珍藏版)》请在冰点文库上搜索。
二手房中介管理系统
学年论文
(数据库课程设计)
题 目:
二手房中介管理系统
作 者:
所在学院:
专业年级:
指导教师:
职 称:
2014年12月7日
信息科学与工程学院学生“数据库课程设计”大作业
一、基本信息
学生
学号
班级
课程名
任课教师
学期
得分
XXX
AAA
数据库课程设计
二、设计目的
掌握SQLServer数据库管理系统,结合SQL语言初步体会简单的数据库应用系统的数据库设计全过程。
三、设计要求
掌握使用SQLServer数据库管理系统进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;同时,完成有相当完善功能并有一定规模的数据库应用系统的数据库设计工作,通过作业对sql语言要有较深入的了解和掌握,拓宽学生知识面。
四、设计摘要
4.1设计题目
二手房中介管理系统
4.2设计内容
二手房中介管理系统
实现房屋户型、房东信息的管理;
实现租房客户信息的管理;
实现房屋的出租、归还登记;
实现租房收费管理;
创建存储过程统计各种户型的房屋的出租数量;
创建触发器,当房屋租出时自动修改该房屋的状态;
创建视图查询当前所有房屋的房号、房东、状态信息;
建立数据库相关表之间的参照完整性约束。
4.3系统的应用范围
二手房中介公司管理员、房东、房客
4.4开发工具
MicrosoftSQLServer2008、MicrosoftOfficeVisio2007
五、需求分析
首先是用户角度,用户分为两类,房东、房客,不管是房东还是房客初次使用本系统时需填写个人信息以保证实名制和发布房源信息的真实性,注册完成后房客便可以登记个人二手房的需求,包括户型、楼层、面积、价格等,用户也可以对个人资料及发布的信息进行修改,以充实或更正房源信息。
其次本系统增加了输出房屋基本状态的视图功能,可以方便地查看各个房屋是否租出的状态情况。
为了方便管理员统计各种户型的房屋的出租数量,创建了存储过程功能。
为实现当房屋租出时自动修改该房屋的状态,在收费信息表中创建了触发器,当用户完成交易并付费后自动把房源信息表中的房屋状态从待租改为“已租”,同样在房屋归还信息表中创建触发器当添加一条归还信息时将房屋状态改为“未租”。
最后为了能够方便的根据房屋的面积大小算出整个房屋的租费创建了函数,实现了每平米100元*房屋面积得出总租费
六、数据库设计
6.1概念结构设计
图6.1.1房东信息表
图6.1.2房客信息表
图6.1.3房屋归还信息表
图6.1.4房源信息表
图6.1.5收费信息表
图6.1.6意向信息表
图6.1.7员工信息表
图6.1.8系统E-R图
6.2逻结构设计
员工信息表(员工ID,姓名,性别,出生日期,电话,身份证号,地址,学历)
收费信息表(费用ID,金额,员工ID,员工姓名,房屋ID,付款日期,备注,房东ID,房客ID)
房东信息表(房东ID,姓名,性别,出生日期,手机,邮箱,身份证号,房屋ID,记录日期)
房客信息表(房客ID,姓名,性别,出生日期,手机,邮箱,身份证号,意向ID,记录日期)
房源信息表(房屋ID,物业名称,户型,状态,价格,面积,房东ID,备注)
意向信息表(意向ID,客户ID,户型,楼层编号,用途,价格,面积)
房屋归还信息表(房屋ID,房客ID,归还日期)
6.3物理结构设计
表6.3.1房东信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
房东ID
10
varchar(10)
否
主键
姓名
20
varchar(20)
是
性别
4
varchar(4)
是
出生日期
m-y-d
datetime
是
手机
20
varchar(20)
是
邮箱
30
varchar(30)
是
身份证号
20
varchar(20)
是
房屋ID
10
varchar(10)
否
外键
记录日期
m-y-d
datetime
表6.3.2房客信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
房客ID
10
varchar(10)
否
主键
姓名
20
varchar(20)
是
性别
4
varchar(4)
是
出生日期
m-y-d
datetime
是
手机
20
varchar(20)
是
邮箱
30
varchar(30)
是
身份证号
20
varchar(20)
是
意向ID
10
varchar(10)
否
外键
记录日期
m-y-d
datetime
是
表6.3.3房源信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
房屋ID
10
varchar(10)
否
主键
物业名称
50
varchar(50)
是
户型
10
varchar(10)
是
状态
10
varchar(10)
是
价格
money
是
面积
20
varchar(20)
是
房东ID
10
varchar(10)
否
外键
备注
50
varchar(50)
是
表6.3.4意向信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
意向ID
10
varchar(10)
否
主键
客户ID
10
varchar(10)
否
外键
户型
10
varchar(10)
是
楼层编号
10
varchar(10)
是
价格
money
是
用途
10
varchar(10)
是
面积
20
varchar(20)
是
表6.3.5收费信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
费用ID
10
varchar(10)
否
主键
金额
money
是
员工ID
10
varchar(10)
否
外键
员工姓名
20
varchar(20)
是
房屋ID
10
varchar(10)
否
外键
付款日期
m-y-z
datetime
是
房东ID
10
varchar(10)
否
外键
房客ID
10
varchar(10)
否
外键
表6.3.6房屋归还信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
房屋ID
10
varchar(10)
否
主键
房客ID
10
varchar(10)
是
归还日期
m-n-d
datetime
否
外键
表6.3.7员工信息表
字段
字段长度
字段类型
是否允许空值
主键/外键
员工ID
10
varchar(10)
否
主键
姓名
20
varchar(20)
是
性别
4
varchar(4)
是
身份证号
20
varchar(20)
是
出生日期
m-y-d
datetime
是
电话
20
varchar(20)
是
地址
50
varchar(50)
是
学历
10
varchar(10)
是
七、数据库实现
7.1数据库
数据库主要代码如下
CREATEDATABASE[二手房管理]ONPRIMARY
(NAME=N'二手房管理',=N'F:
\计算机-5王争喜\二手房管理.mdf',SIZE=3072KB,MAXSIZE=UNLIMITED,=1024KB)
LOGON
(NAME=N'二手房管理_log',=N'F:
\计算机-5王争喜\二手房管理_log.ldf',SIZE=1024KB,MAXSIZE=2048GB,=10%)
GO
ALTERDATABASE[二手房管理]SETCOMPATIBILITY_LEVEL=100
GO
IF(1=FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC[二手房管理].[dbo].[sp_fulltext_database]@action='enable'
end
GO
图7.1.1数据库截图
7.2表
图7.2.1数据库表截图
(1)房东信息表代码
CREATETABLE[dbo].[房东信息表](
[房东ID][varchar](10)NOTNULL,
[姓名][varchar](20)NULL,
[性别][varchar](4)NOTNULL,
[出生日期][datetime]NOTNULL,
[手机][varchar](20)NULL,
[邮箱][varchar](30)NULL,
[身份证号][varchar](20)NULL,
[房屋ID][varchar](10)NULL,
[记录日期][datetime]NULL,
CONSTRAINT[PK_客户信息表]PRIMARYKEYCLUSTERED
(
[房东ID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[房东信息表]WITHCHECKADDCONSTRAINT[CK_房东信息表]CHECK(([性别]='男'OR[性别]='女'))
GO
ALTERTABLE[dbo].[房东信息表]CHECKCONSTRAINT[CK_房东信息表]
GO
ALTERTABLE[dbo].[房东信息表]WITHCHECKADDCONSTRAINT[CK_客户信息表]CHECK(([性别]='男'OR[性别]='女'))
GO
ALTERTABLE[dbo].[房东信息表]CHECKCONSTRAINT[CK_客户信息表]
GO
ALTERTABLE[dbo].[房东信息表]ADDCONSTRAINT[DF_客户信息表_性别]DEFAULT('男')FOR[性别]
GO
ALTERTABLE[dbo].[房东信息表]ADDCONSTRAINT[DF_客户信息表_出生日期]DEFAULT(((2080)-
(1))-
(1))FOR[出生日期]
GO
ALTERTABLE[dbo].[房东信息表]ADDCONSTRAINT[DF_房东信息表_记录日期]DEFAULT(getdate())FOR[记录日期]
GO
图7.2.2房东信息表设计截图
图7.2.3房东信息表截图
(2)房客信息表代码
CREATETABLE[dbo].[房客信息表](
[房客ID][varchar](10)NOTNULL,
[姓名][varchar](20)NULL,
[性别][varchar](4)NOTNULL,
[出生日期][datetime]NULL,
[手机][varchar](20)NULL,
[邮箱][varchar](30)NULL,
[身份证号][varchar](20)NULL,
[意向ID][nchar](10)NULL,
[记录日期][datetime]NULL,
CONSTRAINT[PK_房客信息表]PRIMARYKEYCLUSTERED
([房客ID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
GO
图7.2.4房客信息表设计截图
图7.2.5房客信息表截图
(3)意向信息表
CREATETABLE[dbo].[意向信息表](
[意向ID][varchar](10)NOTNULL,
[客户ID][varchar](10)NULL,
[户型][varchar](10)NULL,
[楼层编号][varchar](10)NULL,
[用途][varchar](10)NULL,
[价格][money]NULL,
[面积][varchar](20)NULL,
CONSTRAINT[PK_意向信息表]PRIMARYKEYCLUSTERED
(
[意向ID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[意向信息表]WITHCHECKADDCONSTRAINT[FK_意向信息表_房客信息表]FOREIGNKEY([客户ID])
图7.2.6意向信息表设计截图
图7.2.7意向信息表截图
(4)房源信息表
CREATETABLE[dbo].[房源信息表](
[房屋ID][varchar](10)NOTNULL,
[物业名称][varchar](50)NULL,
[户型][varchar](10)NULL,
[状态][varchar](10)NULL,
[每平价格][money]NULL,
[面积][int]NULL,
[房东ID][varchar](10)NULL,
[备注][varchar](50)NULL,
CONSTRAINT[PK_房源信息表]PRIMARYKEYCLUSTERED
([房屋ID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO,
图7.2.8房源信息表设计截图
图7.2.9房源信息表截图
(5)收费信息表
CREATETABLE[dbo].[收费信息表](
[费用ID][varchar](10)NOTNULL,
[金额][money]NULL,
[员工ID][varchar](10)NULL,
[员工姓名][varchar](20)NULL,
[房屋ID][varchar](10)NULL,
[付款日期][datetime]NOTNULL,
[备注][varchar](100)NULL,
[房东ID][varchar](10)NULL,
[房客ID][varchar](10)NULL,
CONSTRAINT[PK_收费信息表]PRIMARYKEYCLUSTERED
(
[费用ID]DESC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
图7.2.10收费信息表设计截图
图7.2.11收费信息表截图
(6)房屋归还信息表
CREATETABLE[dbo].[房屋归还信息表](
[房屋ID][varchar](10)NULL,
[房客ID][varchar](10)NULL,
[归还日期][datetime]NULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[房屋归还信息表]ADDCONSTRAINT[DF_房屋归还信息表_归还日期]DEFAULT(getdate())FOR[归还日期]
GO
图7.2.12房屋归还信息表设计截图
图7.2.13房屋归还信息表截图
(7)员工信息表
CREATETABLE[dbo].[员工信息表](
[员工ID][varchar](10)NOTNULL,
[姓名][varchar](10)NULL,
[性别][varchar](10)NULL,
[出生日期][datetime]NOTNULL,
[电话][varchar](20)NULL,
[身份证号][varchar](20)NULL,
[地址][varchar](50)NULL,
[学历][varchar](10)NOTNULL,
CONSTRAINT[PK_员工信息表]PRIMARYKEYCLUSTERED
([员工ID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
图7.2.14员工信息表设计截图
图7.2.15员工信息表截图
7.3视图
创建视图查询当前所有房屋的房号、房东、状态信息
CREATEVIEW[dbo].[房屋信息]
AS
SELECTdbo.房源信息表.房屋ID,dbo.房东信息表.房东ID,dbo.房源信息表.状态
FROMdbo.房东信息表INNERJOIN
dbo.房源信息表ONdbo.房东信息表.房东ID=dbo.房源信息表.房东ID
GO
图7.3.1视图
7.4存储过程及触发器
(1)创建存储过程统计各种户型的房屋的出租数量
CREATEPROCEDURE[dbo].[tongji出租数量]
AS
select户型,状态,COUNT(房屋ID)as统计
from[dbo].[房源信息表]
where状态='已租'
groupby户型,状态
存储过程的执行代码
USE[二手房管理]
GO
DECLARE@return_valueint
EXEC@return_value=[dbo].[tongji出租数量]
SELECT'ReturnValue'=@return_value
GO
执行结果:
图7.4.1存储过程
(2)创建触发器,当房屋租出时自动修改该房屋的状态为已租
CREATETRIGGER[dbo].[修改状态]
ON[dbo].[收费信息表]
afterinsert
AS
BEGIN
update[dbo].[房源信息表]set状态='已租'
where房屋ID=(select房屋IDfrominserted)
SETNOCOUNTON;
触发器执行代码
select*frominserted
select*from[dbo].[房源信息表]
END
当在收费信息表中添加一条交易信息时自动把交易的那个房屋在房源信息表里的状态改为已租
执行前结果:
图7.4.2触发前
执行后结果:
图7.4.3触发后
(3)创建触发器,当房屋归还时自动修改房屋状态为待租
CREATETRIGGER[dbo].[归还状态]
ON[dbo].[房屋归还信息表]
afterinsert
AS
BEGIN
update[dbo].[房源信息表]set状态='待租'
where房屋ID=(select房屋IDfrominserted)
SETNOCOUNTON;
触发器执行代码
select*frominserted
select*from[dbo].[房源信息表]
END
当在归还房屋信息表中添加一条归还信息时自动把归还的那个房屋在房屋信息表的状态改为待租,结果:
图7.4.4触发前
图7.4.5触发后
7.5查询
查询户型A,状态为待租的房屋信息
select*from房源信息表where户型='A户型'and状态='待租'
图7.5.1查询
7.6函数
创建一个函数使得能够通过房屋的面积计算租金
CREATEFUNCTION[dbo].[价格函数](@面积int)
RETURNSint
AS
BEGIN
DECLARE@价格int
set@价格=@面积*100
--Returntheresultofthefunction
RETURN@价格
END
select[dbo].[房源信息表].*,[dbo].[价格函数](面积)as金额from房源信息表
图7.6.1函数
7.7约束
在房东信息表和房客信息表中性别列中只能输入‘男’或‘女’,在记录日期中获取登记时的当前日期,在房屋归还表中的归还日期也获取当前登记的日期
图7.7.1约束
图7.7.2约束结果
在房屋归还信息表中的归还日期获取当前日期
USE[二手房管理]
GO
ALTERTABLE[dbo].[房屋归还信息表]ADDCONSTRAINT[DF_房屋归还信息表_归还日期]DEFAULT(getdate())FOR[归还日期]
GO
八、总结
课程设计终于做完了,虽然有些疲劳和困倦,但带给我很多的收获。
在这次的学习中,学到了许多知识,在际应用中,也用到了许多。
对这些知识也有了更深的理解和很好的掌握。
许多困惑,有许多已经通过实际操作解决了