数据库课程设计—某自来水公司收费系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

某自来水公司收费管理系统目录:1.问题描述2.需求分析2.1需求分析2.2系统功能结构2.3数据流图3.逻辑结构设计3.1局部E—R图3.2全局E—R图3.3数据字典4.物理结构设计5.代码6.小结1.问题描述(某自来水公司收费管理系统)实现客户信息、用水类型(类别号、类别名、水价)及业务员管理;实现客户用电信息管理(客户号、月份、用水类别号、用水量);实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为‘未收’;实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;创建存储过程统计指定月份应收费用和实收费用;创建存储过程查询指定月份未交费的用户信息,以便崔费;创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;建立表间关系。2.需求分析2.1需求分析随着人们生活水平的提高,传统的人工记录已经跟不上时代的发展,信息化的世界即将覆盖人们生活的点点滴滴。针对各地供水公司的水费缴费在状况,设计了能够符合适应大多数城市的水费缴费系统,采用了分布式管理的模式,能够实现数据管理以及日常维护任务,具有较好的安全性稳定性适应性,为实现水费缴费提供技术及业务指导。此自来水公司收费管理系统,遵循了科学高效/循序渐进/规划清晰的原则,能够最大程度的减少营销信息化建设所遇到的风险问题。2.2系统功能结构某自来水公司收费管理系统客户管理业务员管理用水信息管理账单查询管理费用管理选择用水类型交费缴费统计用户信息客户费用管理收费登记结余登记客户查询业务员查询按月份查询按电话查询按姓名查询按地址查询按月份查询按客户地址查询按客户姓名查询按客户电话查询2.3数据流图自来水公司收费管理系统客户员工缴费客户信息信息一览表客户员工缴费3.收费登记操作员工信息1.选择用水类型使用2.选择用水信息消费总量4.费用管理操作缴费客户信息客户员工3.1显示应收金额3.2确认实收金额3.3显示结余金额缴费4.费用管理员工信息1.1查询用水类别1.2查询水价查询查询用水类型表2.1查询用水吨数查询用水信息表操作导入客户信息客户信息3.逻辑设计结构3.1局部E-R图客户客户名地址联系方式客户号用水类型类别名类别号水价业务员客户用水信息客户费用管理收费登记业务员名业务员号性别联系方式客户号月份用水量类别号月份费用客户号收费标志月份客户号应收费用员工号实收费用3.2全局E-R图客户用水类型客户用水信息业务员客户费用管理收费登记客户名地址客户号联系方式业务员名性别联系方式业务员号类别名水价类别号交费收费使用消费缴费客户号月份费用收费标志月份员工号客户号应收费用实收费用客户号月份用水量类别号3.3数据字典名字:客户描述:自来水公司的客户,使用者定义:客户=客户号+客户名+地址+联系方式名字:员工描述:负责收缴客户的水费定义:员工=员工号+员工名+联系方式+性别名字:用水类型描述:不同用途的水价不同定义:用水类型=类型号+类型名+水价名字:客户用水信息描述:每一位客户的具体信息定义:客户用水信息=客户号+月份+类型号+用水量名字:客户费用管理描述:每一个客户费用的具体信息定义:客户费用管理=费用编号+费用+收费标志名字:收费登记描述:每一位用户收费的具体信息定义:收费登记=收费编号+月份+实收费用+应收费用4.物理结构设计(1)图:客户客户号客户名地址联系方式...numeric(8)char(20)varchar(50)numeric(11)pk用水类型类型号类型名水价numeric(4)char(20)numeric(4)pk员工员工号姓名性别联系方式...numeric(4)char(20)char(10)numeric(11)pk客户用水信息月份水价收费标志客户号收费编号...char(20)numeric(4)char(20)numeric(8)numeric(8)pkpkfk收费登记实收费用应收费用收费编号员工号...char(20)char(20)Undefinednumeric(4)pkfk客户费用管理费用收费标志收费编号月份客户号...numeric(4)char(20)numeric(8)char(20)numeric(8)pkfkfk选择客户号类型号numeric(8)numeric(4)pk,fk1pk,fk2缴费收费编号客户号Undefinednumeric(8)pk,fk1pk,fk2使用类型号月份客户号numeric(4)char(20)numeric(8)pk,fk1pk,fk2pk,fk2(2)表格清单(1)客户表字段名数据类型可否为空键引用备注客户号Number(8)否主键客户号客户名Char(20)否客户名地址varchar2(50)否地址联系方式number(11)否联系方式(2)用水类型表字段名数据类型可否为空键引用备注类型号number(4)否主键类型号类型名char(20)否类型名水价char(10)否水价(3)员工表字段名数据类型可否为空键引用备注员工号Number(8)否主键员工号员工名Char(20)否员工名性别char(10)否性别联系方式number(11)否联系方式(4)客户用水信息表字段名数据类型可否为空键引用备注客户号Number(8)否主键/外键客户号类型号number(4)否主键/外键类型号月份char(20)否主键月份用水量char(10)否用水量(5)客户费用管理字段名数据类型可否为空键引用备注费用编号Number(4)否主键费用编号费用number(4)否费用收费标志char(20)否收费标志(6)收费登记字段名数据类型可否为空键引用备注收费编号Number(4)否主键收费编号月份char(20)否主键月份应收费用Char(10)否外键所属专业实收费用Char(10)否外键所属学院5.代码1.客户表createtable客户表(客户号number(8)constraintp_cprimarykey,客户名char(20),地址varchar2(50),联系方式number(11));插入数据:insertinto插入数据:insertinto客户表values(20130001,'张三','东北林业大学',00001);insertinto客户表values(20130002,'张三','东北林业大学',00002);insertinto客户表values(20130003,'小红','东北林业大学',00003);insertinto客户表values(20130004,'小明','东北林业大学',00004);2.用水类型createtable用水类型(类型号number(4)constraintp_wprimarykey,类型名char(20),水价char(10));插入数据:insertinto用水类型values(01,'学校','0.5');insertinto用水类型values(02,'个人','1.0');insertinto用水类型values(03,'商店','2.0');insertinto用水类型values(04,'食堂','1.5');3.员工表createtable员工表(员工号number(10)constraintp_sprimarykey,员工名char(20),性别char(10),联系方式number(11));插入数据:insertinto员工表values(0001,'小白','男',04510001);insertinto员工表values(0002,'小白','女',04510002);insertinto员工表values(0003,'小兰','女',04510003);insertinto员工表values(0004,'小黑','男',04510004);4.客户用水信息createtable客户用水信息(客户号number(8)constraintfk_c1references客户表(客户号),类型号number(4)constraintfk_w1references用水类型(类型号),月份char(20),用水量char(10),primarykey(客户号,类型号,月份));5.客户费用管理createtable客户费用管理(费用编号number(4)primarykey,费用number(4),收费标志char(20)default('未收'));6.收费登记createtable收费登记(收费编号number(4)primarykey,月份char(20),应收费用char(10),实收费用char(10));触发器1:计算收费createorreplacetriggercountbeforeinsertorupdateordeleteon收费登记foreachrowbeginifinsertingorupdatingthen:new.结余费用=:new.实收费用-:new.应收费用;endif;end;触发器2:未收标志createtriggerchange1beforeupdateon客户费用管理beginupdate客户费用管理set收费标志='未收';end;触发器3:计算结余费用createorreplacetriggerJYchargeBeforeupdateon收费登记foreachrowbegininsertintoJYcharge(实收费用,应收费用,JYcharge)values(:old.实收用,:old.应收费用,:old.实收费用-:old.应收费用);end;过程函数1:统计应收费用和实收费用CREATEORREPLACEPROCEDURETJasbeginexecuteimmediate'createtableJYcharge(应收费用number(10),实收费用number(10))';executeimmediate'insertintocony_empvalues(:old.应收费用,:old.实收费用)';commit;endTJ;/过程函数2.未交费createorreplaceprocedureWJF(Fnooutnumber)isbeginselect收费编号into费用编号from收费登记where收费登记.实收费用=0and收费编号=费用编号;endWJF;6.小结通过本次实习,我更加了解了利用数据库设计系统的流程,此次实习综合运用了《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》相关的理论知识,有了初步分析实际问题的能力。初步掌握了用《数据库系统原理》的知识设计计算机应用课题的思想和方法。虽然我自己还不能很熟悉的完成整个系统的设计,但是这使我对这门课程有了更深入的理解,在今后的学习中我会加强理论与实践的结合,争取做到可以独立完成设计!

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功