《2022年水费管理物理数据库设计文档模版 .pdf》由会员分享,可在线阅读,更多相关《2022年水费管理物理数据库设计文档模版 .pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 页 共 26页水费管理系统物理数据库设计文档文档编号 : 100090786 当前版本号 : V0.2 最初发布日期: 2011-1-3 最新修订日期: 2010-1-3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - - - - - 第 2 页 共 26 页2 文档位置文档修改历史版本号版本日期修改总结修订人V0.0 2010-12-10 利用外键实现数据库的规范化和完整性。陈晴V0.1 2010-12-11 可以利用视图进行查询和
2、修改陈晴V0.2 2010-12-12 可以利用触发器、存储过程来实现数据库的自动化、系统化。陈晴参考文档序号参考文档版本日期1.管理数据字段V1.0 2008-04-14 2.商务数据字段V1.0 2008-04-14 3.销售数据字段V1.0 2008-04-14 4.业务数据字段V1.0 2008-04-14 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - 第 3 页 共 26 页3 目录1. 物理数据库设计 . 4 1
3、.2 数据库总体设计 . 41.2.1 表空间规划 . 41.2.2 数据库规划 . 42. 数据库表设计 . 5 2.2 实体列表 ( Entity List) . 52.2.1 . 52.2.2 . 62.2.3 . 72.2.4 . 72.2.5 . 92.2.6 . 10 2.3 实体定义 . 11 2.3.1 . 11 2.3.2 . 12 2.3.3 . 12 2.3.4 . 13 2.3.5 . 14 2.4 数据库其他对象设计 . 15 2.4.1 存储过程设计. 16 2.4.2 触发器设计 . 16 3. 数据库容量及安全性设计 . 18 3.2 数据量估计 . 18 3.
4、3 数据库安全性设计 . 18 3.3.1 用户设置 . 18 3.3.2 用户组设置 . 18 3.3.3 数据库权限设计 . 19 3.4 附录1 . 19 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - 第 4 页 共 26 页4 1.物理数据库设计1.2数据库总体设计1.2.1表空间规划1.2.2数据库规划数据库名自来水公司水费管理系统数据库描述自来水公司水费管理系统数据库设计与开发用到的表空间Consumer,cha
5、rger,worker,fee,water_work 代码集 (codeset) 视图: debt_cons,debt_notice 存储过程:fee_xx,fee_xx1,meter_xx,meter_xx1,sing_fee_history,singfee,sum_fee,sum_fee1,sum_water,sum_water1,unit_fee_history,unitfee触发器:add_consumer,check_fee,add_debt 安装考虑(HA, etc) 备份 /恢复策略数据库创建之后进行了备份,然后恢复使用名师资料总结 - - -精品资料欢迎下载 - - - - -
6、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 26 页 - - - - - - - - - 第 5 页 共 26 页5 2.数据库表设计2.2实体列表 ( Entity List) 序号实体名称别名描述备注PT1charger 学员基本信息表记录学员的信息PT2consumer 请假信息表记录请假的详细信息PT3fee 课程信息表描述所有课程的详细信息PT4Meter_work 缴费信息表缴费的详细信息及缴费情况的记录PT5worker 选课信息表学员选择课程的详细记录及信息2.2.1 抄表人员用户收费人员抄表缴费名师资料总结
7、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 26 页 - - - - - - - - - 第 6 页 共 26 页6 2.2.2 编号电话身份证号姓名收费员基本信息备注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 26 页 - - - - - - - - - 第 7 页 共 26 页7 2.2.3 2.2.4 用户信息用户名称用户地址用户编号水价类型水表编号
8、所属单位欠费数备注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 26 页 - - - - - - - - - 第 8 页 共 26 页8 应付费用用户编号收费员缴费状态缴费时间用水量月份编号缴费名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 26 页 - - - - - - - - - 第 9 页 共 26 页9 2.2.5 课程名称用户编号抄表员
9、号上期读数编号抄表本期读数水表编号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 26 页 - - - - - - - - - 第 10 页 共 26 页10 2.2.6 抄表员信息姓名备注电话编号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - 第 11 页 共 26 页11 2.3实体定义2.3.1在
10、序号处应提供超级连接到相应的数据字典别名收费员基本信息表描述记录收费员的基本信息到逻辑数据模型(LDM )的映射1对多目的记录基本信息事件修改查询基本信息charger ( 收费员基本信息表 ) 列名数据类型允许空备注是否为主键Charger_num char(2) 收费员编号是charger_name nvarchar(4) 姓名Charger_tel Char(12) 是电话Id Char(20) 是身份证号remark nvarchar (50)是备注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
11、 - - - - 第 11 页,共 26 页 - - - - - - - - - 第 12 页 共 26 页12 2.3.2 别名客户信息表描述客户账户的的详细信息到逻辑数据模型(LDM )的映射1对多目的记录修改客户账户信息事件修改,查询,添加,删除客户信息consumer (客户信息表 ) 列名数据类型允许空备注是否为主键Cons_num Char(8) 客户编号是Cons_name nvarchar(4) 客户名称Cons_addr Nvarchar(50) 客户地址unit Nchar(10) 允许单位名称kind float 水价类型Meter_num Char(8) 水表编号deb
12、t money 欠费额reamarks Nvarchar (50)允许备注2.3.3 别名缴费信息表描述记录缴费的详细情况到逻辑数据模型(LDM )的映射多对多目的记录更改缴费信息事件修改,查询,添加,删除缴费信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 26 页 - - - - - - - - - 第 13 页 共 26 页13 fee ( 缴费信息表 ) 列名数据类型允许空备注是否为主键Num Int 编号是cons_num Char(8) 用户编号Water
13、_month int 月份water float 本月用水量fee Money 允许应缴费用fee_time Datetime 允许缴费时间status Bit 允许缴费状态Charger_num Char(2) 允许操作员编号2.3.4 别名抄表信息表描述抄表的详细信息到逻辑数据模型(LDM )的映射多对多目的记录抄表信息事件修改,查询,添加,删除抄表信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 26 页 - - - - - - - - - 第 14 页 共 2
14、6 页14 Meter_work( 抄表信息表 ) 列名数据类型允许空备注是否为主键num Int 编号是cons_num Char(8) 客户编号Meter_num char(8) 水表编号Meter_start float 上期读数Meter_end float 本期读数Meter_time datetime 抄表时间Worker_num Char(3) 允许抄表员编号2.3.5 别名抄表员基本信息表描述记录抄表员的基本信息到逻辑数据模型(LDM )的映射1对多目的记录修改抄表基本信息事件修改,查询,添加,删除基本信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
15、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 26 页 - - - - - - - - - 第 15 页 共 26 页15 worker( 抄表员信息 ) 列名数据类型允许空备注是否为主键worker_Num Char(3 )编号是worker_name nvarchar(4) 姓名Worker_tel Char(12) 是电话remarks Varchar(50) 是备注2.4数据库其他对象设计本节是可选的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
16、 - - - - - - 第 15 页,共 26 页 - - - - - - - - - 第 16 页 共 26 页16 2.4.1存储过程设计存储过程名称功能描述Fee_xx /*按年月查询用户收费信息*/ Fee_xx1 /*按单位查询用户收费信息*/ Meter_xx /*按年月查询用户抄表信息*/ Meter_xx1 /*按单位查询用户抄表信息*/ Sing_fee_history /* 查询个人缴费历史*/ Singfee 个人或工厂缴费,并打印缴费单Sum_fee /*按年月统计用户收费信息*/ Sum_fee1 /*按单位统计用户收费信息*/ Sum_water /*统计某年某月
17、的总用水量*/ Sum_water1 /*统计某单位的某年某月的总用水量*/ Unit_fee_history /* 查询单位缴费历史*/ unitfee 单位统一缴费2.4.2触发器设计触发器名称触发事件功能描述Add_consumer 插入用户注册时,要初始化用户信息(填写姓名,地址,单位,水价类型,水表编号 ), 并在抄表信息中添加表的初始信息Check_fee 更新当用户缴费时,更新缴费信息,将要缴月份的缴费状态设为true ,同时记录缴费时间和操作员,并将“ 用户表” 中的欠费额数减少相应的钱数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
18、 - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 26 页 - - - - - - - - - 第 17 页 共 26 页17 Add_deb 插入当插入一条抄表信息(户号,表号,止码,抄表日期,抄表员)时,同时更新起码(即变为上一次的止码),将在缴费信息中插入一条缴费信息(包括此用户的本月用水量、本月应缴水费) ,缴费主状态设为false名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 26 页 - - - - - - - - - 第
19、 18 页 共 26 页18 数据库容量及安全性设计2.5数据量估计序号实体名称实体含义平均估计大小数据访问频度% 当前容量年增长量增加修改删除1 charger 收费员信息2 consumer 客户账户基本信息3 fee 缴费信息4 Meter_work 抄表信息5 worker 抄表员信息2.6数据库安全性设计2.6.1用户设置用户名描述Dbo 对数据库进行备份consumer 查看数据admin 对数据库进行管理sa 拥有数据库所有的权限2.6.2用户组设置组名组成员描述sa sa 拥有数据库所有的权限admin admin 拥有相应的管理权限consumer consumer 可以查看
20、自己的信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 26 页 - - - - - - - - - 第 19 页 共 26 页19 2.6.3数据库权限设计表名组名用户名权限描述charger sa sa 可以对表进行修改、添加、删除、查询consumer sa sa 可以对表进行修改、添加、删除、查询fee sa sa 可以对表进行修改、添加、删除、查询Meter_work sa sa 可以对表进行修改、添加、删除、查询worker sa sa 可以对表进行修改、
21、添加、删除、查询2.7附录 1 use水费管理/* 用户注册时,要初始化用户信息(填写姓名,地址,单位,水价类型,水表编号), 并在抄表信息中添加表的初始信息*/ alter trigger add_comsumer on consumer instead of insert as declare cons_num char (8), cons_name nvarchar (8), cons_addr nvarchar (50), num int,unit nchar (10 ), kind float , meter_num char (8) selectcons_num=cons_num
22、,cons_name=cons_name ,cons_addr=cons_addr ,unit =unit ,kind =kind ,meter_num=meter_num from inserted select num =max (num ) from meter_work set num =num +1 insert consumer (cons_num ,cons_name ,cons_addr ,unit ,kind ,meter_num,debt ,remarks ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
23、名师精心整理 - - - - - - - 第 19 页,共 26 页 - - - - - - - - - 第 20 页 共 26 页20 values (cons_num,cons_name,cons_addr,unit ,kind ,meter_num,0,null) insert meter_work(num ,cons_num ,meter_num,meter_end ,meter_time ,worker_num) values (num ,cons_num,meter_num,0,getdate (),null) go insert consumer (cons_num ,cons_
24、name ,cons_addr ,unit ,kind ,meter_num) values (00000024 ,c24 ,aaaa2 ,bbbb1 ,1,00000024 ) /* 当插入一条抄表信息(户号,表号,止码,抄表日期,抄表员)时,同时更新起码(即变为上一次的止码),将在缴费信息中插入一条缴费信息(包括此用户的本月用水量、本月应缴水费),缴费主状态设为false*/ alter trigger add_debt on meter_work instead of insert as declare cons_num char (8),meter_num char (8),meter
25、_start float ,meter_end float ,meter_time datetime ,worker char (3), num int,month int,water float ,fee money ,status bit ,num1 int selectcons_num=cons_num ,meter_num=meter_num,meter_end=meter_end ,meter_time=meter_time ,worker =worker_num from inserted select meter_start=max (meter_end ) from meter
26、_work where cons_num=cons_num select num1 =max (num )from meter_work select num =max (num ) from fee set num1 =num1 +1 set num =num +1 if meter_end=0 set water =0 else set water =meter_end-meter_start set month =cast (month (meter_time)as int)-1 if month 0 and b.status =0 select * from debt_notice o
27、rder by 户号computesum (月用水量 ),sum (应缴费用 ) by 户号/* 查询、统计和报表*/ /* 按年月查询用户抄表信息*/ create procedure meter_xx year int ,month int as select * from meter_work where cast (year (meter_time ) as int)=year and cast (month (meter_time)as int )=month exec meter_xx 2011,2 /* 按单位查询用户抄表信息*/ alter procedure meter_xx
28、1 unit nchar (10 ),year int ,month int as selectb.cons_num ,b.unit ,b.cons_num ,b.cons_name ,a.meter_num,a.meter_start,a.meter_end ,a.meter_time ,a.worker_num from meter_work as a,consumer as b where cast (year (a.meter_time ) as int)=year and cast (month (a.meter_time)as int )=month and a.cons_num
29、=b.cons_num and b.unit =unit exec meter_xx1 bbbb1 ,2011 ,2 /* 按年月查询用户收费信息*/ create procedure fee_xx year int ,month int as select * from fee where cast (year (fee_time ) as int)=year and cast (month (fee_time )as int )=month 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
30、 - 第 23 页,共 26 页 - - - - - - - - - 第 24 页 共 26 页24 exec fee_xx 2011 ,2 /* 按单位查询用户收费信息*/ create procedure fee_xx1 unit nchar (10 ),year int ,month int as select a.water_month,b.cons_num ,b.unit ,b.cons_num ,b.cons_name , a.water ,a.fee,a.status ,a.fee_time ,a.charger_num from fee as a,consumer as b w
31、here cast (year (a.fee_time ) as int)=year and cast (month (a.fee_time )as int )= month and a.cons_num =b.cons_num and b.unit =unit exec fee_xx1 bbbb1 ,2011 ,2 /* 查看未缴用户*/ create view debt_cons as select * from consumer where debt 0 select * from debt_cons /* 统计某年某月的总用水量*/ alter procedure sum_water
32、year int ,month int as set month =month +1 select年=cast (year as char (4) ,月=cast (month -1) as char (2),总用水量 =sum (meter_end -meter_start) from meter_work where cast (year (meter_time ) as int)=year and cast (month (meter_time)as int )=month exec sum_water 2011,1 /* 统计某单位的某年某月的总用水量*/ alter procedur
33、e sum_water1 unit nchar (10 ),year int ,month int as set month =month +1 select单位名称 =unit , 年=cast (year as char (4) ,月=cast (month -1) as char (2), 总用水量 =sum (a.meter_end -a.meter_start) from meter_work as a,consumer as b where cast (year (a.meter_time ) as int)=year and cast (month (a.meter_time)a
34、s int )=month and a.cons_num =b.cons_num and b.unit =unit 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 26 页 - - - - - - - - - 第 25 页 共 26 页25 exec sum_water1 bbbb1 ,2011 ,1 /* 按年月统计用户收费信息*/ alter procedure sum_fee year int ,month int as select年=cast (year as
35、 char (4) ,月=cast (month ) as char (2),总收费 =sum (fee)from fee where cast (year (fee_time ) as int)=year and cast (month (fee_time )as int )=month and status =1 select年=cast (year as char (4) ,月=cast (month ) as char (2),未收费 =sum (fee)from fee where cast (year (fee_time ) as int)=year and cast (month
36、 (fee_time )as int )=month and status =0 exec sum_fee 2011,2 /* 按单位统计用户收费信息*/ alter procedure sum_fee1 unit nchar (10 ),year int ,month int as select单位名称 =unit ,年=cast (year as char (4) ,月=cast (month ) as char (2), 总收费 =sum (a.fee ) from fee as a,consumer as b where cast (year (a.fee_time ) as int)
37、=year and cast (month (a.fee_time )as int )= month and a.cons_num =b.cons_num and b.unit =unit and a.status =1 select单位名称 =unit ,年=cast (year as char (4) ,月=cast (month ) as char (2), 未收费 =sum (a.fee ) from fee as a,consumer as b where cast (year (a.fee_time ) as int)=year and cast (month (a.fee_tim
38、e )as int )= month and a.cons_num =b.cons_num and b.unit =unit and a.status =0 exec sum_fee1 bbbb1 ,2011 ,2 /* 查询个人缴费历史*/ create procedure sing_fee_history cons_num char (8) as select * from fee where cons_num=cons_num exec sing_fee_history 00000001 /* 查询单位缴费历史*/ alter procedure unit_fee_history uni
39、t nchar (10 ) as select月份 =a.water_month,本月总用水量=sum (a.water ), 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 26 页 - - - - - - - - - 第 26 页 共 26 页26 本月应缴费用=sum (a.fee), 缴费状态 =1 from fee as a,consumer as b where a.cons_num =b.cons_num and b.unit =unit and a.st
40、atus =1 group by a.water_month select月份 =a.water_month,本月总用水量=sum (a.water ), 本月未缴费用=sum (a.fee), 缴费状态 =0 from fee as a,consumer as b where a.cons_num =b.cons_num and b.unit =unit and a.status =0 group by a.water_month exec unit_fee_history bbbb1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 26 页 - - - - - - - - -