小区物业数据库设计.docx

上传人:b****1 文档编号:15083873 上传时间:2023-06-30 格式:DOCX 页数:37 大小:605.33KB
下载 相关 举报
小区物业数据库设计.docx_第1页
第1页 / 共37页
小区物业数据库设计.docx_第2页
第2页 / 共37页
小区物业数据库设计.docx_第3页
第3页 / 共37页
小区物业数据库设计.docx_第4页
第4页 / 共37页
小区物业数据库设计.docx_第5页
第5页 / 共37页
小区物业数据库设计.docx_第6页
第6页 / 共37页
小区物业数据库设计.docx_第7页
第7页 / 共37页
小区物业数据库设计.docx_第8页
第8页 / 共37页
小区物业数据库设计.docx_第9页
第9页 / 共37页
小区物业数据库设计.docx_第10页
第10页 / 共37页
小区物业数据库设计.docx_第11页
第11页 / 共37页
小区物业数据库设计.docx_第12页
第12页 / 共37页
小区物业数据库设计.docx_第13页
第13页 / 共37页
小区物业数据库设计.docx_第14页
第14页 / 共37页
小区物业数据库设计.docx_第15页
第15页 / 共37页
小区物业数据库设计.docx_第16页
第16页 / 共37页
小区物业数据库设计.docx_第17页
第17页 / 共37页
小区物业数据库设计.docx_第18页
第18页 / 共37页
小区物业数据库设计.docx_第19页
第19页 / 共37页
小区物业数据库设计.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

小区物业数据库设计.docx

《小区物业数据库设计.docx》由会员分享,可在线阅读,更多相关《小区物业数据库设计.docx(37页珍藏版)》请在冰点文库上搜索。

小区物业数据库设计.docx

小区物业数据库设计

《数据库应用课程设计报告》

题目:

小区物业管理数据库设计

专业:

班级:

学号:

姓名:

指导教师:

完成日期:

年月日

小区物业管理数据库设计

 

(国脉信息学院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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2