目录
一、系统功能介绍
1.用户功能:
(1)用户可以登录和注册系统
(2)用户可以查看系统的相关新闻和公告信息
(3)用户查看房屋的出售信息,可以在线订购房屋,输入订购的相关信息,生产订购单
(4)用户查看房屋的出租信息,可以在线预约看房
(5)用户可以发布在线留言信息
(7)用户修改个人资料信息
2.管理员功能:
(1)管理员登录系统后台
(2)管理员管理房屋的区域位置信息
(3)管理员对中介发布的出售和出租房屋信息进行审核
(4)管理员管理用户的留言信息进行管理
(5)管理员对网站新闻公告的信息进行管理
(6)管理员可以对添加别的管理员登录后台
(7)管理员对房屋中介账户信息进行管理
(8)管理员对系统注册的用户进行管理
3.房东功能:
(1)发布和管理房屋的出租信息,信息由管理员审核
(2)发布和管理房屋的出售信息,信息由管理员审核
(3)查看用户房屋购买的订单
(4)查看用户的预约看房的信息
(5)修改个人资料信息
二、系统结构图
图1
三、业务流程图
图2
四、数据流图
1.顶层数据流图
图3
2.第一层数据流图
图4
3.第二层数据流图
图5
图6
五、数据字典
1.数据流
数据流名称:房屋信息 说明:租售房屋的基本信息 数据流来源:由房东录入系统 数据流去向:管理员,用户 数据流组成:房屋信息=房屋编号+房屋地址+房型+房屋面积+最多容纳人数+房屋状态+租售金额+房屋说明 平均流量:1次/年 高峰期流量2次/年 |
2.数据项
数据项编号:I1 数据项名称:房主姓名 含义说明:房产持有人的姓名 类型:字符型 长度:10 与其他数据项的逻辑关系:与I2号是租赁关系 |
数据项编号:I2 数据项名称:用户姓名 含义说明:租房/购房者姓名 类型:字符型 长度:10 与其他数据项的逻辑关系:与I1号是租赁关系 |
3.数据存储
数据存储名:房屋信息文件 说明:记录房屋的基本信息 编号:D1 流入的数据流:房主录入信息 流出的数据流:向管理员和用户显示信息 组成:房屋信息=房屋编号+房屋地址+房型+房屋面积+最多容纳人数+房屋状态+租售金额+房屋说明 存储方式:更新 |
数据存储名:房主 说明:定义了房东的基本信息 编号:D2 流入的数据流:房主录入信息 流出的数据流:向管理员和用户显示信息 组成:房主信息=姓名+年龄+性别+联系方式 存储方式:更新 |
六、数据库概念结构设计
1.实体属性分析
图7 房屋实体属性图
图8 房主实体属性图
图9 用户实体属性图
2.E-R图
图10 房屋租售管理系统E-R图
3.概念模型分析(CDM图)
图11 CDM 图
七、数据库逻辑结构设计
1.关系模式
房主(编号,姓名,性别,年龄,联系方式)
用户(编号,姓名,性别,年龄,需求,联系方式)
房屋(房屋编号,房屋地址,房屋状态,房屋总面积,容纳人数,房主姓名)
合同(合同单号,房主信息,房源信息,用户信息)
看房记录(看房记录编号,房屋编号,用户姓名)
租/售记录(交易单号,金额,房屋编号,用户姓名)
2.概念模型设计(LDM图)
图12 LDM图
八、数据库物理实现
1.表设计
2.创建表和完整性约束代码设计
(1)创建表
(2)SQL代码设计
/*==============================================================*/
/* Database name: 1234 */
/* DBMS name: Microsoft SQL Server 2008 */
/* Created on: 2023/6/5 11:25:44 */
/*==============================================================*/
drop database 1234
go
/*==============================================================*/
/* Database: 1234 */
/*==============================================================*/
create database 1234
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'1234', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\1234.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
LOG ON
( NAME = N'1234_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\1234_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF
go
alter database 1234
set witness READ_WRITE
go
use 1234
go
/*==============================================================*/
/* User: dbo */
/*==============================================================*/
execute sp_grantdbaccess dbo
go
/*==============================================================*/
/* Table: contract */
/*==============================================================*/
create table dbo.contract (
cid varbinary(max) not null,
Uid varbinary(max) null,
oid varbinary(max) null,
owner varbinary(max) null,
"user" varbinary(max) null,
constraint PK_CONTRACT primary key (cid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: house */
/*==============================================================*/
create table dbo.house (
Hid varbinary(max) not null,
Uid varbinary(max) null,
area varbinary(max) not null,
address varbinary(max) not null,
type varbinary(max) not null,
state varbinary(max) not null,
constraint PK_HOUSE primary key (Hid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: owner */
/*==============================================================*/
create table dbo.owner (
oid varbinary(max) not null,
Hid varbinary(max) null,
cid varbinary(max) null,
oname varbinary(max) not null,
osex varbinary(max) null,
onum varbinary(max) not null,
constraint PK_OWNER primary key (oid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: "user" */
/*==============================================================*/
create table dbo."user" (
Uid varbinary(max) not null,
cid varbinary(max) null,
Uname varbinary(max) not null,
Usex varbinary(max) null,
Unum varbinary(max) not null,
constraint PK_USER primary key (Uid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: 乙方 */
/*==============================================================*/
create table dbo.乙方 (
Uid varbinary(max) not null,
cid varbinary(max) not null,
constraint PK_乙方 primary key nonclustered (Uid, cid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: 拥有 */
/*==============================================================*/
create table dbo.拥有 (
Hid varbinary(max) not null,
oid varbinary(max) not null,
constraint PK_拥有 primary key nonclustered (Hid, oid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: 甲方 */
/*==============================================================*/
create table dbo.甲方 (
oid varbinary(max) not null,
cid varbinary(max) not null,
constraint PK_甲方 primary key nonclustered (oid, cid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
/*==============================================================*/
/* Table: 租用 */
/*==============================================================*/
create table dbo.租用 (
Hid varbinary(max) not null,
Uid varbinary(max) not null,
constraint PK_租用 primary key nonclustered (Hid, Uid)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]
go
alter table dbo.contract
add constraint FK_CONTRACT_RELATIONS_USER foreign key (Uid)
references dbo."user" (Uid)
go
alter table dbo.contract
add constraint FK_CONTRACT_RELATIONS_OWNER foreign key (oid)
references dbo.owner (oid)
go
alter table dbo.house
add constraint FK_HOUSE_RELATIONS_USER foreign key (Uid)
references dbo."user" (Uid)
go
alter table dbo.owner
add constraint FK_OWNER_RELATIONS_HOUSE foreign key (Hid)
references dbo.house (Hid)
go
alter table dbo.owner
add constraint FK_OWNER_RELATIONS_CONTRACT foreign key (cid)
references dbo.contract (cid)
go
alter table dbo."user"
add constraint FK_USER_RELATIONS_CONTRACT foreign key (cid)
references dbo.contract (cid)
go
3.概念模型设计(PDM图)
图13 PDM图