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

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

某自来水公司收费管理系统

目录:

问题描述

需求分析

需求分析

系统功能结构

数据流图

3.逻辑结构设计

局部E—R图

全局E—R图

数据字典

4.物理结构设计

5.代码

6.小结

问题描述(某自来水公司收费管理系统)

实现客户信息、用水类型(类别号、类别名、水价)及业务员管理;实现客户用电信息管理(客户号、月份、用水类别号、用水量);

实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为‘未收’;

实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);

创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;

创建存储过程统计指定月份应收费用和实收费用;

创建存储过程查询指定月份未交费的用户信息,以便崔费;

创建规则使得月份符合格式“××××年××月”,并邦定到表中相应字段;

建立表间关系。

需求分析

需求分析

随着人们生活水平的提高,传统的人工记录已经跟不上时代的发展,信息化的世界即将覆盖人们生活的点点滴滴。针对各地供水公司的水费缴费在状况,设计了能够符合适应大多数城市的水费缴费系统,采用了分布式管理的模式,能够实现数据管理以及日常维护任务,具有较好的安全性稳定性适应性,为实现水费缴费提供技术及业务指导。此自来水公司收费管理系统,遵循了科学高效/循序渐进/规划清

晰的原则,能够最大程度的减少营销信息化建设所遇到的风险问题。系统功能结构

数据流图

3.逻辑设计结构局部E-R图

全局E-R图

数据字典

4.物理结构设计(1)图:

客户

客户号客户名地址

联系方式...numeric(8)

char(20)

varchar(50) numeric(11)

用水类型

类型号类型名水价numeric(4)

char(20)

numeric(4)

员工

员工号

姓名

性别

联系方式

...

numeric(4)

char(20)

char(10)

numeric(11)

客户用水信息

月份

水价

收费标志

客户号

收费编号

...

char(20)

numeric(4)

char(20)

numeric(8)

numeric(8)

收费登记

实收费用

应收费用

收费编号

员工号

...

char(20)

char(20)

numeric(4)

客户费用管理

费用

收费标志

收费编号

月份

客户号

...

numeric(4)

char(20)

numeric(8)

char(20)

numeric(8)

选择

客户号类型号numeric(8)

numeric(4)

缴费

收费编号

客户号

numeric(8)

使用

类型号

月份

客户号

numeric(4)

char(20)

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)否外键所属学院代码

1.客户表

create table 客户表(

客户号number(8) constraint p_c primary key,

客户名char(20),

地址varchar2(50),

联系方式number(11));

插入数据:

insert into 插入数据:

insert into 客户表

values(,'张三','东北林业大学',00001);

insert into 客户表

values(,'张三','东北林业大学',00002);

insert into 客户表

values(,'小红','东北林业大学',00003);

insert into 客户表

values(,'小明','东北林业大学',00004);

2.用水类型

create table 用水类型(

类型号number(4) constraint p_w primary key,类型名char(20),

水价char(10));

插入数据:

insert into 用水类型values(01,'学校',''); insert into 用水类型values(02,'个人',''); insert into 用水类型values(03,'商店',''); insert into 用水类型values(04,'食堂','');

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;

触发器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

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;

小结

通过本次实习,我更加了解了利用数据库设计系统的流程,此次实习综合运用了《数据库系统原理》的理论知识和技能,深入理解《数据库系统原理》相关的理论知识,有了初步分析实际问题的能力。初步掌握了用《数据库系统原理》的知识设计计算机应

用课题的思想和方法。虽然我自己还不能很熟悉的完成整个系统的设计,但是这使我对这门课程有了更深入的理解,在今后的学习中我会加强理论与实践的结合,争取做到可以独立完成设计!

相关主题
相关文档
最新文档