小区物业数据库设计.docx
- 文档编号:15083873
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:37
- 大小:605.33KB
小区物业数据库设计.docx
《小区物业数据库设计.docx》由会员分享,可在线阅读,更多相关《小区物业数据库设计.docx(37页珍藏版)》请在冰点文库上搜索。
小区物业数据库设计
《数据库应用课程设计报告》
题目:
小区物业管理数据库设计
专业:
班级:
学号:
姓名:
指导教师:
完成日期:
年月日
小区物业管理数据库设计
(国脉信息学院11级1班)
摘要:
这个数据库是管理楼盘住户的信息,便于管理用户的信息。
用数据库管理可以更高效和更清晰的看清住户的信息还有投诉,保修等信息,有利于小区的管理,每个小区都必须应用一个小区的数据库管理系统,这个才能更好的管理。
如果一个小区没有一个数据库管理的系统,小区的管理就会混乱,住户的投诉和保修就得不到解决,所以数据库您值得拥有!
关键词:
数据库级联更新、删除触发器视图
1.概述
1.1设计背景:
数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完《数据库系统概论》课程后进行的一次全面的综合练习。
1.2设计目的:
在于加深对数据库基础理论和基本知识的理解,掌握进行数据库开发的全过程,提高运用数据库解决实际问题的能力。
1.3设计内容:
进行需求分析,设计数据库的概念模型。
系统基本功能:
楼盘信息管理:
楼盘信息的添加、编辑和查询;
住户信息管理:
住户信息的添加、编辑和查询;
报修事项管理:
报修事项的添加、编辑和查询;
投诉信息管理:
投诉信息的添加、编辑和查询;
报表管理:
输出楼盘信息、住户信息、报修信息和投诉信息。
其中:
(除了以下信息,也可以按需要增加属性列)
楼盘信息:
包括的主要数据项有:
楼盘编号,楼盘名称,楼层数,面积,户型,地址
住户信息:
包括的主要数据项有:
业主编号,姓名,性别,电话,门牌号,面积,身份证
报修事项:
包括的主要数据项有:
报修事项编号,报修名称,业主编号,维修状态,日期,受理人
投诉信息:
包括的主要数据项有:
投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人
2.需求分析
2.1系统功能分析:
楼盘信息管理:
楼盘信息的添加、编辑和查询;
住户信息管理:
住户信息的添加、编辑和查询;
报修事项管理:
报修事项的添加、编辑和查询;
投诉信息管理:
投诉信息的添加、编辑和查询;
报表管理:
输出楼盘信息、住户信息、报修信息和投诉信息。
2.2数据字典
数据项
数据项编号
数据项名称
数据类型
长度
可否为空
描述
1
楼盘编号
int
否
楼盘的编号
2
楼盘名称
char
20
否
楼盘的名称
3
楼层数
int
否
楼盘的层数
4
面积
int
否
房间的大小
5
户型
char
20
否
属于什么户型
6
地址
char
20
否
所在地址
7
业主编号
int
否
业主的编号
8
名字
char
20
否
业主的名字
9
性别
char
20
否
业主性别
10
电话
int
否
业主电话
11
门牌号
int
否
房间门牌号
12
身份证
char
20
否
业主身份证
13
报修事项号
int
否
报修事项编号
14
报修名称
char
20
否
报修的东西
15
维修状态
char
20
否
维修的状态
16
日期
datetime
20
否
受理时间
17
受理人
char
20
否
管理人员
18
投诉事项编号
int
否
投诉事项编号
19
投诉名称
char
20
否
投诉的东西
20
解决状态
char
20
否
解决的状态
数据结构:
数据结构编号
数据结构名
数据结构定义
组成
1
楼盘信息表
楼盘信息
楼盘编号,楼盘名称,楼层数,面积,户型,地址
2
住户信息表
住户信息
业主编号,姓名,性别,电话,门牌号,面积,身份证
3
报修信息表
报修信息
报修事项编号,报修名称,业主编号,维修状态,日期,受理人
4
投诉信息表
投诉信息
投诉事项编号,投诉名称,业主编号,解决状态,日期,受理人
2.3数据流程图:
楼盘信息管理:
住户看好楼盘→填购买表→付款→管理人员把资料录入数据库保存→带住户到房间及交代一些注意事项
投诉事项管理:
住户提出投诉→填投诉表→交给管理人员→录入数据库→工作人员来处理→工作人员上报处理投诉结果→再次录入数据库保存
报修事项管理:
住户申请报修→填申请表→交给管理人员→录入数据库→专门人员上门修理→工作人员上报修理结果→录入数据库保存
住户信息管理:
住户申请修改住户信息→填住户信息表→管理人员审核→审核通过录入信息到数据库保存
3.数据库结构
3.1概念模型设计(E-R图)
实体及其属性图:
(1).楼盘信息表的E-R图
.住户信息表的E-R图
.保修信息表的E-R图
.
投诉信息表的E-R图
(2).
实体及其联系图:
3.2逻辑设计
关系模式:
楼盘(楼盘编号,楼盘名称,楼层数,面积,户型,地址)
住户(业主编号,姓名,性别,电话,门牌号,面积,身份证)
投诉(投诉事项编号,业主编号,投诉名称,解决状态,日期,受理人)
报修(报修事项编号,业主编号,报修名称,维修状态,日期,受理人)
拥有(业主编号,楼盘编号)
数据库表的设计
楼盘信息表
字段名称
数据类型
可否为空
说明
楼盘编号
int
否
主键
楼盘名称
char(20)
否
楼层数
int
否
面积
int
否
户型
char(20)
否
地址
char(20)
否
住户信息表
字段名称
数据类型
可否为空
说明
业主编号
int
否
主键
姓名
char(20)
否
性别
char(20)
可
电话
int
否
门牌号
int
否
面积
int
否
身份证
char(20)
否
投诉信息表
字段名称
数据类型
可否为空
说明
投诉事项编号
int
否
主键
业主编号
char(20)
否
外键
投诉名称
char(20)
否
解决状态
char(20)
否
默认not
日期
datetime
否
默认当前时间
受理人
char(20)
否
报修信息表
字段名称
数据类型
可否为空
说明
报修事项编号
int
否
主键
业主编号
char(20)
否
外键
保修名称
char(20)
否
维修状态
char(20)
否
默认not
日期
datetime
否
默认当前时间
受理人
char(20)
否
拥有信息表
字段名称
数据类型
可否为空
说明
业主编号
int
否
主键
楼盘编号
int
否
4.数据库物理设计(主要包括数据存储位置、存储格式;索引及索引类型。
)
数据存放在E盘的根目录下,数据库存储格式为*****.mdf
日志存储格式为*****.ldf
索引类型有两个:
一、唯一索引
二、聚簇索引
因为主键就可以看做是一个聚簇索引,每个表都有设主键,所以不可在建聚簇索引
5.数据库实施与测试(源代码及查询截图)
--创建数据库
createdatabase小区业务管理
onprimary
(
name='小区业务管理',
filename='E:
\小区业务管理.mdf',
size=3mb,
maxsize=100mb,
filegrowth=10%
)
logon
(
name='小区业务管理.ldf',
filename='E:
\小区业务管理_log.ldf',
size=1mb,
maxsize=2mb,
filegrowth=10%
)
go
--创建楼盘信息表
createtable楼盘信息表
(
楼盘编号intprimarykeynotnull,
楼盘名称char(20)notnull,
楼层数intnotnull,
面积intnotnull,
户型char(20)notnull,
地址char(20)notnull
)
go
--创建表住户信息表
createtable住户信息表
(
业主编号intprimarykeynotnull,
姓名char(20)notnull,
性别char(20)check(性别in('男','女')),
电话intnotnull,
门牌号intuniquenotnull,
面积intnotnull,
身份证char(20)uniquenotnull
)
go
--创建投诉信息表
createtable投诉信息表
(
投诉事项编号intprimarykeynotnull,
业主编号intnotnull,
投诉名称char(20)notnull,
解决状态char(20)default'not',
日期datetimedefaultgetdate(),
受理人char(20)notnull,
foreignkey(业主编号)references住户信息表(业主编号)
)
go
--创建表报修信息表
createtable报修信息表
(
报修事项编号intprimarykeynotnull,
业主编号intnotnull,
报修名称char(20)notnull,
维修状态char(20)default'not',
日期datetimedefaultgetdate(),
受理人char(20)notnull,
foreignkey(业主编号)references住户信息表(业主编号)
)
go
--创建拥有信息表
createtable拥有信息表
(
业主编号intprimarykeynotnull,
楼盘编号intnotnull
)
go
--编辑楼盘信息管理的操作
--信息的添加
--楼盘信息的添加
insertinto楼盘信息表
values(1,'海天',5,120,'三室一厅','中山路号')
insertinto楼盘信息表
values(2,'柠檬夏天',10,120,'四室一厅','中山路号')
insertinto楼盘信息表
values(3,'指尖刹那',9,300,'四室一厅','中山路号')
--住户信息的添加
insertinto住户信息表
values(11,'林达','女','15980123','520','120','3505251992')
insertinto住户信息表
values(12,'谢可','女','15980147','521','100','3505251993')
insertinto住户信息表
values(13,'谢华','男','15980520','522','180','3505251994')
insertinto住户信息表
values(14,'张琳','男','15980369','523','250','3505251995')
insertinto住户信息表
values(15,'仲夏','男','15980789','524','300','3505251996')
--报修信息的添加
insertinto报修信息表(报修事项编号,业主编号,报修名称,受理人)
values(10,15,'水管爆裂','王砖家')
insertinto报修信息表(报修事项编号,业主编号,报修名称,受理人)
values(11,14,'电线端口安装','王砖家')
insertinto报修信息表(报修事项编号,业主编号,报修名称,受理人)
values(12,13,'大门锁坏掉','王砖家')
insertinto报修信息表(报修事项编号,业主编号,报修名称,受理人)
values(13,12,'灯泡更换','王砖家')
--投诉信息的添加
insertinto投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)
values(100,11,'墙壁裂痕','胡说')
insertinto投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)
values(101,12,'停水','胡说')
insertinto投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)
values(102,13,'周围太吵','胡说')
insertinto投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)
values(103,14,'乱丢垃圾','胡说')
--拥有信息表的添加
insertinto拥有信息表
values(11,1)
insertinto拥有信息表
values(12,2)
insertinto拥有信息表
values(13,2)
insertinto拥有信息表
values(14,2)
insertinto拥有信息表
values(15,3)
--信息的查询
select*from楼盘信息表
select*from住户信息表
select*from报修信息表
select*from投诉信息表
select*from拥有信息表
--信息的编辑
--楼盘信息编辑
update楼盘信息表set楼盘名称='彩虹之家'
where楼盘名称='海天'
go
--住户信息的编辑
update住户信息表set电话='1314520'
where电话='15980123'
go
--5.3创建视图:
为提高数据库使用效率,增强数据库安全性,按如下要求设计视图:
--1:
业主信息视图:
通过该视图可以得到住户信息,包含业主姓名,楼盘名称,门牌号,性别,电话,面积,身份证
createview业主信息视图
as
select姓名业主姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证from住户信息表,楼盘信息表,拥有信息表
where楼盘信息表.楼盘编号=拥有信息表.楼盘编号and住户信息表.业主编号=拥有信息表.业主编号
--2:
未维修事项信息视图:
报修名称,报修人,楼盘名称,门牌号,电话,保修日期,受理人。
createview未维修事项信息视图
as
select报修名称,姓名报修人,楼盘名称,门牌号,电话,日期保修日期,受理人from报修信息表,住户信息表,楼盘信息表,拥有信息表
where维修状态!
='ok'and楼盘信息表.楼盘编号=拥有信息表.楼盘编号and住户信息表.业主编号=拥有信息表.业主编号
and报修信息表.业主编号=住户信息表.业主编号
--3.未解决投诉信息视图:
createview未解决投诉信息视图
as
select投诉名称,姓名投诉人,楼盘名称,门牌号,电话,日期保修日期,受理人from投诉信息表,住户信息表,楼盘信息表,拥有信息表
where解决状态!
='OK'and楼盘信息表.楼盘编号=拥有信息表.楼盘编号and住户信息表.业主编号=拥有信息表.业主编号
and投诉信息表.业主编号=住户信息表.业主编号
--5.5创建触发器:
.如利用触发器使相关连的表能实现级联更新和级联删除。
--实现级联更新和级联删除
--住户信息表的级联更新删除
createtriggertri_Delete_Update
on住户信息表insteadofupdate,delete
as
begin
declare@insetchar(6),@deletchar(6)
select@inset=业主编号frominserted
select@delet=业主编号fromdeleted
if(update(业主编号))
begin
EXECsp_msforeachtable'ALTERTABLE?
NOCHECKCONSTRAINTALL'--禁用约束
update报修信息表
set业主编号=@inset
where业主编号=@delet
update投诉信息表
set业主编号=@inset
where业主编号=@delet
update拥有信息表
set业主编号=@inset
where业主编号=@delet
update住户信息表
set业主编号=@inset
where业主编号=@delet
EXECsp_msforeachtable'ALTERTABLE?
CHECKCONSTRAINTALL'
--启用约束
end
else
begin
deletefrom报修信息表
where业主编号=@delet
deletefrom投诉信息表
where业主编号=@delet
deletefrom拥有信息表
where业主编号=@delet
deletefrom住户信息表
where业主编号=@delet
end
end
--查询结果
select*from住户信息表
select*from投诉信息表
select*from报修信息表
--测试代码
update住户信息表set业主编号=520
where业主编号=11
因为做实验是先建好触发器,在用数据测试的,且住户信息表有一个删除触发器,所以显示删除成功!
deletefrom住户信息表
where业主编号=520
--楼盘信息表的级联更新删除
createtriggertri_楼盘
on楼盘信息表insteadofupdate,delete
as
begin
declare@insetchar(6),@deletchar(6)
select@inset=楼盘编号frominserted
select@delet=楼盘编号fromdeleted
if(update(楼盘编号))
begin
EXECsp_msforeachtable'ALTERTABLE?
NOCHECKCONSTRAINTALL'--禁用约束
update拥有信息表
set楼盘编号=@inset
where楼盘编号=@delet
update楼盘信息表
set楼盘编号=@inset
where楼盘编号=@delet
EXECsp_msforeachtable'ALTERTABLE?
CHECKCONSTRAINTALL'--启用约束
end
else
begin
deletefrom拥有信息表
where楼盘编号=@delet
deletefrom楼盘信息表
where楼盘编号=@delet
end
End
这个触发器是后面做完实验感觉不完整再添加上去的,所以这里的数据是做完试验后的数据。
--2.如当删除一条住户信息记录能够显示提示,当添加一条报修信息能够显示提示。
createtrigger删除住户on住户信息表
afterdelete
as
print'删除成功!
!
'
go
createtrigger添加报修on报修信息表
afterinsert
as
print'添加成功!
!
'
go
--5.6创建存储过程:
--1.创建查询某一业主信息的存储过程
--查询住户的信息存储过程
createproc查询住户信息
as
select*from住户信息表
exec查询住户信息
--2.创建添加报修信息记录的存储过程
createproc添加报修信息
@报修事项编号char(20),
@业主编号char(20),
@报修名称char(20),
@受理人char(20)
as
begin
insertinto报修信息表(报修事项编号,业主编号,报修名称,受理人)
values(@报修事项编号,@业主编号,@报修名称,@受理人)
end
--使用方法exec添加报修信息'业主编号','报修名称','受理人'
--因为维修状态和日期默认。
exec添加报修信息'100','12','水管不来水','王砖家'
--3.创建返回某个楼盘的业主人数,并设置没有指定值时,指定一个默认楼盘
--默认楼盘编号为2
createproc业主人数
as
selectCOUNT(*)业主人数from拥有信息表
where楼盘编号=2
--4.利用存储过程和游标设计报表:
-- a.输出指定的楼盘名称如输入“楼盘名称,输出一张报表显示该楼盘里面的所有住户信息,如下:
/*
楼盘名称
业主姓名性别电话门牌号面积身份证
------------------------------------------------------------
徐红女12345678A301105平方12345678909
……
------------------------------------------------------------*/
createproc楼盘住户表
@楼盘名称char(20)
as
print@楼盘名称
begin
declare@姓名char(10)
declare@性别char(10)
declare@电话char(10)
declare@门牌号char(10)
declare@面积char(10)
declare@身份证char(10)
declareGR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小区 物业 数据库 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)