数据库课程设计—某自来水公司收费系统
某自来水公司收费管理系统
目录:
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显示结客户员工收金额收金额余金额缴费
查询操作
用水类型1.1查询用用水信息表表水类别导入
4.费用管
理查询
1.2查询水
价查询2.1查询用
水吨数
3.逻辑设计结构
3.1局部E-R图
客户号
用水类型
客户名
客户
地址
类别名水价
类别号
联系方式
业务员号性别
类别号
客户号
业务员
客户用水信息
联系方式
业务员名用水量
月份
月份费用
月份
客户号应收费用客户号收费标志
实收费用
客户费用管理收费登记
员工号
3.2全局E-R图
月份业务员名性别客户名地址客户号员工号业务员号联系方式客户号
联系方式
交费收费客户收费登记业务员
应收费用实收费用
使用
客户用水客户费用消费缴费用水类型信息管理
水价客户号类别号用水量客户号
费用类别号类别名月份
月份收费标志
3.3数据字典
名字:客户 名字:员工
描述:自来水公司的客户,使用者 描述:负责收缴客户的水费 定义:客户=客户号+客户名+地址+联定义:员工=员工号+员工名+联系方式
系方式 +性别
名字:用水类型 名字:客户用水信息 描述:不同用途的水价不同 描述:每一位客户的具体信息 定义:用水类型=类型号+类型名+水价 定义:客户用水信息=客户号+月份+类
型号+用水量 名字:客户费用管理 名字:收费登记
描述:每一个客户费用的具体信息 描述:每一位用户收费的具体信息 定义:客户费用管理=费用编号+费用+定义:收费登记=收费编号+月份+实收
收费标志 费用+应收费用
,
4.物理结构设计
(1)图:
客户缴费收费登记员工客户号numeric(8)
收费编号实收费用char(20)员工号numeric(4)客户名char(20)客户号numeric(8)应收费用char(20)姓名char(20)地址varchar(50)收费编号性别char(10)联系方式numeric(11)员工号numeric(4)联系方式numeric(11).........
选择客户号numeric(8)类型号numeric(4)
客户用水信息客户费用管理用水类型使用月份char(20)费用numeric(4)类型号numeric(4)水价numeric(4)类型号numeric(4)收费标志char(20)类型名char(20)收费标志char(20)月份char(20)收费编号numeric(8)水价numeric(4)客户号numeric(8)客户号numeric(8)月份char(20)收费编号numeric(8)客户号numeric(8)... ...(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.客户表
create table 客户表(
客户号 number(8) constraint p_c primary key,
客户名 char(20),
地址 varchar2(50),
联系方式 number(11));
插入数据:
insert into 插入数据:
insert into 客户表
values(20130001,'张三','东北林业大学',00001);
insert into 客户表
values(20130002,'张三','东北林业大学',00002); insert into 客户表
values(20130003,'小红','东北林业大学',00003); insert into 客户表
values(20130004,'小明','东北林业大学',00004);
2.用水类型
create table 用水类型(
类型号 number(4) constraint p_w primary key,
类型名 char(20),
水价 char(10));
插入数据:
insert into 用水类型 values(01,'学校','0.5'); insert into 用水类型 values(02,'个人','1.0'); insert into 用水类型 values(03,'商店','2.0'); insert into 用水类型 values(04,'食堂','1.5');
3.员工表
create table 员工表(
员工号 number(10) constraint p_s primary key,
员工名 char(20),
性别 char(10),
联系方式 number(11));
插入数据:
insert into 员工表 values(0001,'小白','男',04510001); insert into 员工表 values(0002,'小白','女',04510002); insert into 员工表 values(0003,'小兰','女',04510003); insert into 员工表 values(0004,'小黑','男',04510004);
4.客户用水信息
create table 客户用水信息(
客户号 number(8) constraint fk_c1 references 客户表(客户号), 类型号 number(4) constraint fk_w1 references 用水类型(类型号), 月份 char(20),
用水量 char(10),
primary key(客户号,类型号,月份));
5.客户费用管理
create table 客户费用管理(
费用编号 number(4) primary key, 费用 number(4),
收费标志 char(20) default('未收')
);
6.收费登记
create table 收费登记(
收费编号 number(4) primary key, 月份 char(20),
应收费用 char(10),
实收费用 char(10)
);
触发器1:计算收费
create or replace trigger count
before
insert or update or delete on 收费登记 for each row
begin
if inserting or updating then :new.结余费用=:new.实收费用-:new.应收费用; end if;
end;
触发器2:未收标志
create trigger change1 before
update on 客户费用管理
begin
update 客户费用管理 set 收费标志='未收'; end;
触发器3:计算结余费用
create or replace trigger JYcharge
Before
update on 收费登记 for each row begin
insert into JYcharge(实收费用,应收费用,JYcharge) values(:old.实收用,:old.应收费用,:old.实收费用-:old.应收费用); end;
过程函数1:统计应收费用和实收费用
CREATE OR REPLACE PROCEDURE TJ as
begin
execute immediate 'create table JYcharge(应收费用number(10),实
收费用 number(10))';
execute immediate 'insert into cony_emp
values (:old.应收费用,:old.实收费用)';
commit;
end TJ;
/
过程函数2.未交费
create or replace procedure WJF(Fno out number)
is
begin
select 收费编号 into 费用编号 from 收费登记 where 收费登记.实收费用=0 and 收费编号=费用编号; end WJF;
6(小结
通过本次实习,我更加了解了利用数据库设计系统的流
程,此次实习综合运用了《数据库系统原理》的理论知识和
技能,深入理解《数据库系统原理》相关的理论知识,有了
初步分析实际问题的能力。初步掌握了用《数据库系统原理》
的知识设计计算机应用课题的思想和
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。虽然我自己还不
能很熟悉的完成整个系统的设计,但是这使我对这门课程有
了更深入的理解,在今后的学习中我会加强理论与实践的结
合,争取做到可以独立完成设计~