收藏 分享(赏)

小区物业管理系统内附代码.docx

上传人:拉拉链 文档编号:17346077 上传时间:2023-02-17 格式:DOCX 页数:29 大小:30.55KB
下载 相关 举报
小区物业管理系统内附代码.docx_第1页
第1页 / 共29页
小区物业管理系统内附代码.docx_第2页
第2页 / 共29页
小区物业管理系统内附代码.docx_第3页
第3页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、苏 州 市 职 业 大 学实习(实训)报告 名称 SQLServer数据库项目实训01 2013年 7月 1日至 2013年7月5日共1 周学院(部) 计算机工程学院 班 级 姓 名 学院(部)负责人 系 主 任 指 导 教 师 软件工程实验文档 目 录目 录I1.课程设计的目的与要求12.题目说明13.需求分析和数据库设计13.1信息收集和需求分析13.2概念设计E-R图23.3逻辑设计44.表和索引的创建及数据完整性65.数据库结构的实现76.遇到的问题和解决方法97.课程设计总结118.参考文献11软件工程实验文档 1. 课程设计的目的与要求 数据库基础与应用课程设计是计算机专业集中实践

2、性环节之一,是学习完数据库系统概论课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用VB、C、C+、PowerBuilder等进行数据库开发的全过程,提高运用数据库解决实际问题的能力。用VB、PB、C+等或其它软件工具制作一个小型管理系统。所设计的小型管理系统应包含查询、插入、删除、修改、报表、统计、用户权限管理等基本功能,界面采用菜单的形式。根据课程设计1周时间的安排选择适当大小的设计课题。根据题目的基本需求,给出概念模型与逻辑模型,编写程序,并写出详细的设计说明书。2. 题目说明 本案例为一个小区物业管理系统主要包括:对小区所有房屋资料的录入、增加、删

3、除、查询等多个功能的实现,是基于在这些小区的房屋资源对小区进行管理;对小区内住户的详细资料的管理,包括增加、删除、修改、查询等功能的实现,这些也是一个小区的基本资料,毕竟物业管理最后是针对小区的所有住户而言的。在具有了所有的基本资料信息后,需要实现实质性的物业管理。主要的管理物业包括:物业设备管理仪表(水、电表)数据管理、收费管理、住户投诉管理、住户报修管理。以及上述物业信息的统计报表,这样可以便于物业公司对小区进行全面的了解和管理。本次课程设计将按照图中数据库生命周期的各个阶段,逐步完成整个系统的设计。3. 需求分析和数据库设计3.1信息收集和需求分析小区物业管理系统的系统结构分为个部分,如

4、图1-2所示。系统功能:用户注册、用户管理、修改密码、退出系统。楼盘管理功能:楼盘管理、添加修改楼盘信息。住户管理功能:住户管理、添加修改住户信息。报修管理功能:报修管理、添加删除报修信息。投诉管理功能:投诉管理。住 户 管 理楼 盘 管 理报 修 管 理投 诉 管 理住 户 管 理住 房 编 辑楼 盘 管 理楼 盘 编 辑报 修 管 理报 修 编 辑投 诉 管 理投 诉 编 辑小区物业管理系统小区物业管理系统 图1-2 物业管理系统工作流程 3.2概念设计E-R图本系统的实体有:小区住户基本信息实体、报修信息实体、投诉信息实体、楼盘信息实体。各个实体具体的描述E-R图如图1-3到图1-7所示

5、。住户信息业主编号姓名性别电话名牌号面积身份证 图1-3 住户基本信息实体属性图楼盘信息楼盘编号楼盘名称楼层数户型面积地址图1-4楼盘信息实体属性图 报修信息报修事项编号报修名称业主编号维修状态日期受理人图1-5 住户报修基本信息实体属性图投诉信息投诉事项编号投诉名称业主编号解决状态日期受理人 图1-6 住户投诉基本信息实体属性图住户信息提交申请报修信息投诉信息nn1mmn楼盘信息拥有 图1-7 实体之间关系ER图3.3逻辑设计现在需要将上面的数据库概念结构转化为SQL Server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。小区物业管理系统数据库中各个表格的设计结果如

6、下面的几个表所示。每个表表示在数据库中的一个数据表。 表1-1 用户表(user1表)字段名数据类型可否为空业主编号(主键)IntNOT NULL楼盘编号IntNOT NULL表1-2 住户基本信息表字段名数据类型可否为空业主编号(主键)IntNOT NULL姓名Char(20)NOT NULL性别Char(20)NOT NULL电话IntNOT NULL门牌号Int uniqueNOT NULL面积IntNOT NULL身份证Char(20)NOT NULL 表1-3 楼盘基本信息表字段名数据类型可否为空楼盘编号(主键)Int NOT NULL楼盘名称Char(20)NOT NULL楼层数I

7、nt NOT NULL面积Int NOT NULL户型Char(20)NOT NULL地址Char(20)NOT NULL 表1-4 报修处理表字段名数据类型可否为空保修事项编号(主键)IntNOT NULL业主编号IntNOT NULL报修名称Char(20)NOT NULL维修状态Char(20)NOT NULL日期DatetimeNOT NULL受理人Char(20)NOT NULL表1-5 投诉管理表字段名数据类型可否为空投诉事项编号(主键)IntNOT NULL业主编号IntNOT NULL投诉名称Char(20)NOT NULL解决状态Char(20)NOT NULL受理人Char

8、(20)NOT NULL日期Detetime NOT NULL4. 表和索引的创建及数据完整性4.1 建立数据库create database 物业管理系统4.2 建立数据表用户表Create table 用户表( 业主编号 int primary key not nul,楼盘编号 int not nul,);住户信息表Create table 住户信息表(业主编号 int primary key not null,姓名 char(20) not null,性别 char(20) check(性别 in(男,女),电话 int not null,门牌号 int unique not null

9、,面积 int not null,身份证 char(20) unique not null);楼盘信息表Create table 楼盘信息表(楼盘编号 int primary key not null,楼盘名称 char(20) not null,楼层数 int not null,面积 int not null,户型 char(20) not null ,地址 char(20) not null);报修信息表Create table 报修信息表(报修事项编号 int primary key not null,业主编号 int not null,报修名称 char(20) not null,维修

10、状态 char(20) default not,日期 datetime default getdate() ,受理人 char(20) not null,foreign key (业主编号) references 住户信息表(业主编号);投诉信息表Create table 投诉信息表(投诉事项编号 int primary key not null,业主编号 int not null,投诉名称 char(20) not null,解决状态 char(20) default not,日期 datetime default getdate(),受理人 char(20) not null,foreig

11、n key (业主编号) references 住户信息表(业主编号);5. 数据库结构的实现5.1 创建数据表(1)创建住户表create table 住户信息表(业主编号 int primary key not null,姓名 char(20) not null,性别 char(20) check(性别 in(男,女),电话 int not null,门牌号 int unique not null ,面积 int not null,身份证 char(20) unique not null)(2)创建楼盘信息表create table 楼盘信息表(楼盘编号 int primary key n

12、ot null,楼盘名称 char(20) not null,楼层数 int not null,面积 int not null,户型 char(20) not null ,地址 char(20) not null)(3)创建报修表Create table 报修信息表 (报修事项编号 int primary key not null,业主编号 int not null,报修名称 char(20) not null,维修状态 char(20) default not,日期 datetime default getdate() ,受理人 char(20) not null,);(4) 创建投诉表Cr

13、eate table 投诉信息表(投诉事项编号 int primary key not null,业主编号 int not null,投诉名称 char(20) not null,解决状态 char(20) default not,日期 datetime default getdate(),受理人 char(20) not null,);5.2 建立视图(1)创建业主信息视图create view 业主信息视图asselect 姓名 业主姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证 from 住户信息表,楼盘信息表,拥有信息表where 楼盘信息表.楼盘编号 = 拥有信息表.楼

14、盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号(2) 创建未维修事项信息视图create view 未维修事项信息视图asselect 报修名称,姓名 报修人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 报修信息表,住户信息表,楼盘信息表,拥有信息表where 维修状态 != ok and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 报修信息表.业主编号 = 住户信息表.业主编号(3)创建报修视图,只显示ID,Name,日期和维修否信息create view 未解决投诉信息视图asselect 投诉

15、名称,姓名 投诉人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 投诉信息表,住户信息表,楼盘信息表,拥有信息表where 解决状态 != OK and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 投诉信息表.业主编号 = 住户信息表.业主编号5.3 创建触发器住户信息表的级联更新删除create trigger tri_Delete_Updateon 住户信息表 instead of update ,deleteasbegindeclare inset char(6),delet char(6)select ins

16、et=业主编号 from inserted select delet=业主编号 from deleted if (update(业主编号) begin 5.4 创建存储过程(1)查询住户的信息存储过程create proc 查询住户信息asselect * from 住户信息表(2)创建添加报修信息记录的存储过程 create proc 添加报修信息报修事项编号 char(20),业主编号 char(20),报修名称 char(20),受理人 char(20)asbegininsert into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(报修事项编号,业主编号,报修名

17、称,受理人)end6. 遇到的问题和解决方法(1) 问题:T-SQL语句运行成功,切换到原有的表记录窗口没有变化解决:原有的表记录窗口只有被刷新才能显示当前记录,方法是选择主菜单【查询】-【执行】命令或单击工具栏的【执行】按钮。(2) 问题:对表设置数据完整性后,没有马上起作用解决:数据完整性设置的调整和表结构修改后一样,在保存后才能起作用7. 课程设计总结至此,小区物业管理系统设计与实现顺利完成。由于当今的物业管理部门还不能有一个很统一的模式化,所以本系统仅考虑到一般小区所需要的物业管理的基本和主要的几项功能。本系统的开发应用能使小区物业管理实现信息化,查询方便、可靠性高、信息存储量大。本系

18、统在开发过程中,在固定的物业管理要求的模式下还添加了一些人性化的,个人的构思和创意。本套小区物业管理系统符合基本需求功能,易于操作,应该可以在简单化模式下的小区内应用,存在要改进的地方再以后会进一步完善。8. 参考文献1 高云,崔艳春.SQL Server 2008数据库技术实用教程.清华大学出版社2 数据库原理及应用 钱雪忠主编 北京邮电大学出版社3 SQL server 2000数据仓库与Analysis Services Bain T著 中国电力出版社create database 物业管理系统use 物业管理系统-创建 楼盘信息表create table 楼盘信息表(楼盘编号 int

19、primary key not null,楼盘名称 char(20) not null,楼层数 int not null,面积 int not null,户型 char(20) not null ,地址 char(20) not null)go-创建表 住户信息表create table 住户信息表(业主编号 int primary key not null,姓名 char(20) not null,性别 char(20) check(性别 in(男,女),电话 int not null,门牌号 int unique not null ,面积 int not null,身份证 char(20)

20、 unique not null)go -创建投诉信息表create table 投诉信息表(投诉事项编号 int primary key not null,业主编号 int not null,投诉名称 char(20) not null,解决状态 char(20) default not,日期 datetime default getdate(),受理人 char(20) not null,foreign key (业主编号) references 住户信息表(业主编号)go-创建表 报修信息表create table 报修信息表(报修事项编号 int primary key not nul

21、l,业主编号 int not null,报修名称 char(20) not null,维修状态 char(20) default not,日期 datetime default getdate() ,受理人 char(20) not null,foreign key (业主编号) references 住户信息表(业主编号) )go-创建拥有信息表create table 拥有信息表(业主编号 int primary key not null,楼盘编号 int not null)go-楼盘信息的添加insert into 楼盘信息表values(1,海天,5,120,三室一厅,中山路号)ins

22、ert into 楼盘信息表values(2,柠檬夏天,10,120,四室一厅,中山路号)insert into 楼盘信息表values(3,指尖刹那,9,300,四室一厅,中山路号)-住户信息的添加insert into 住户信息表values(11,林达,女,15980123,520,120,3505251992)insert into 住户信息表values(12,谢可,女,15980147,521,100,3505251993)insert into 住户信息表values(13,谢华,男,15980520,522,180,3505251994)insert into 住户信息表val

23、ues(14,张琳,男,15980369,523,250,3505251995)insert into 住户信息表values(15,仲夏,男,15980789,524,300,3505251996)-报修信息的添加insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(10,15,水管爆裂,王砖家)insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(11,14,电线端口安装,王砖家)insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(12,13,大门锁坏掉,王砖家) inser

24、t into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(13,12,灯泡更换,王砖家) -投诉信息的添加insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)values(100,11,墙壁裂痕,胡说)insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)values(101,12,停水,胡说)insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)values(102,13,周围太吵,胡说)insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人)values(103,14,乱

25、丢垃圾,胡说)-拥有信息表的添加insert into 拥有信息表values(11,1)insert into 拥有信息表values(12,2)insert into 拥有信息表values(13,2)insert into 拥有信息表values(14,2)insert into 拥有信息表values(15,3)-查询结果select * from 楼盘信息表select * from 住户信息表select * from 报修信息表select * from 投诉信息表select * from 拥有信息表-楼盘信息编辑 update 楼盘信息表 set 楼盘名称 = 彩虹之家whe

26、re 楼盘名称 = 海天 go-住户信息的编辑update 住户信息表 set 电话 = 1314520where 电话 = 15980123 go-业主信息视图:通过该视图可以得到住户信息,包含业主姓名,楼盘名称,门牌号,性别,电话,面积,身份证create view 业主信息视图asselect 姓名 业主姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证 from 住户信息表,楼盘信息表,拥有信息表where 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号-未维修事项信息视图:报修名称,报修人,楼盘名称,门牌号,电话,保修

27、日期,受理人。create view 未维修事项信息视图asselect 报修名称,姓名 报修人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 报修信息表,住户信息表,楼盘信息表,拥有信息表where 维修状态 != ok and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 报修信息表.业主编号 = 住户信息表.业主编号-未解决投诉信息视图:create view 未解决投诉信息视图asselect 投诉名称,姓名 投诉人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 投诉信息表,住户信息表,楼盘信息表,

28、拥有信息表where 解决状态 != OK and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号and 投诉信息表.业主编号 = 住户信息表.业主编号-创建触发器-实现级联更新和级联删除-住户信息表的级联更新删除create trigger tri_Delete_Updateon 住户信息表 instead of update ,deleteasbegindeclare inset char(6),delet char(6)select inset=业主编号 from inserted select delet=业主编号 from de

29、leted if (update(业主编号) begin EXEC sp_msforeachtable ALTER TABLE ? NOCHECK CONSTRAINT ALL -禁用约束 update 报修信息表 set 业主编号=inset where 业主编号=delet update 投诉信息表 set 业主编号=inset where 业主编号=delet update 拥有信息表 set 业主编号=inset where 业主编号=delet update 住户信息表 set 业主编号= inset where 业主编号= delet EXEC sp_msforeachtable

30、ALTER TABLE ? CHECK CONSTRAINT ALL -启用约束 end else begin delete from 报修信息表 where 业主编号=delet delete from 投诉信息表 where 业主编号=delet delete from 拥有信息表 where 业主编号=delet delete from 住户信息表 where 业主编号=delet endend-查询结果select * from 住户信息表select * from 投诉信息表select * from 报修信息表-测试代码update 住户信息表 set 业主编号 = 520wher

31、e 业主编号 = 11-楼盘信息表的级联更新删除create trigger tri_楼盘on 楼盘信息表 instead of update ,deleteasbegindeclare inset char(6),delet char(6)select inset=楼盘编号 from inserted select delet=楼盘编号 from deleted if (update(楼盘编号) begin EXEC sp_msforeachtable ALTER TABLE ? NOCHECK CONSTRAINT ALL -禁用约束 update 拥有信息表 set 楼盘编号=inset

32、 where 楼盘编号=delet update 楼盘信息表 set 楼盘编号 = inset where 楼盘编号 = delet EXEC sp_msforeachtable ALTER TABLE ? CHECK CONSTRAINT ALL -启用约束 end else begin delete from 拥有信息表 where 楼盘编号=delet delete from 楼盘信息表 where 楼盘编号=delet endEnd-如当删除一条住户信息记录能够显示提示,当添加一条报修信息能够显示提示。create trigger 删除住户 on 住户信息表after deleteas

33、print 删除成功!gocreate trigger 添加报修 on 报修信息表after insertasprint 添加成功!go-创建存储过程:-创建查询某一业主信息的存储过程 -查询住户的信息存储过程create proc 查询住户信息asselect * from 住户信息表exec 查询住户信息-创建添加报修信息记录的存储过程 create proc 添加报修信息报修事项编号 char(20),业主编号 char(20),报修名称 char(20),受理人 char(20)asbegininsert into 报修信息表(报修事项编号,业主编号,报修名称,受理人)values(报

34、修事项编号,业主编号,报修名称,受理人)end-创建返回某个楼盘的业主人数,并设置没有指定值时,指定一个默认楼盘 -默认楼盘编号为2 create proc 业主人数 as select COUNT(*) 业主人数 from 拥有信息表 where 楼盘编号 = 2 create proc 楼盘住户表楼盘名称 char(20)asprint 楼盘名称begindeclare 姓名 char(10)declare 性别 char(10)declare 电话 char(10)declare 门牌号 char(10)declare 面积 char(10)declare 身份证 char(10)dec

35、lare GR cursorfor select 姓名,性别,电话,门牌号,面积,身份证 from 住户信息表where 业主编号 in (select 业主编号 from 拥有信息表 where 楼盘编号 in (select 楼盘编号 from 楼盘信息表 where 楼盘名称 = 楼盘名称) open GR fetch next from GR into 姓名,性别,电话,门牌号,面积,身份证 print - print 业主姓名 + + 性别 + + 电话+ + 门牌号 + + 面积+ + 身份证 while FETCH_STATUS = 0 begin print 姓名 + 性别 +

36、 电话+ 门牌号 + 面积+ 身份证 fetch next from GR into 姓名,性别,电话,门牌号,面积,身份证 endprint - close GR deallocate GR end go -b.设计一个存储过程,在该存储过程中建立生成报表的游标,分别显示-已解决的报修事项信息和未解决的报修事项信息。-存储过程.生成报表create proc 报修情况asbegindeclare 业主编号 char(10),报修名称 char(10), 日期 char(22)declare 受理人 char(10)-已解决的报修declare BX_OK cursorforselect 业主

37、编号,报修名称,日期,受理人 from 报修信息表where 维修状态 = okopen BX_OKfetch next from BX_OK into 业主编号,报修名称,日期,受理人print 已经解决的报修事项print -print 业主编号 + 报修名称 + 日期 + 受理人 while FETCH_STATUS = 0 begin print 业主编号 + 报修名称 + 日期 + 受理人 fetch next from BX_OK into 业主编号,报修名称,日期,受理人 end print -close BX_OKdeallocate BX_OK print print -未完成报修的游标操作declare BX_NOT cursorforselect 业主编号,报修名称,日期,受理人 from 报修信息表where 维修状态 = notopen BX_NOTfetch next from BX_NOT into 业主编号,报修名称,日期,受理人print 未解决的报修事项print -print 业主编号 + 报修名称 + 日期 + 受理人 while FETCH_STATUS = 0 begin print 业主编号 + 报修名称 + 日期 + 受理人

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

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报