送水公司的送水系统

发布时间:2018-06-30 01:19:27

分类号 单位代码 11395

密 级 学 号

学生课程设计

题目

送水公司的送水系统

作者

XXXXX

院 (系)

XXXXXX

专业

XXXXXX

指导教师

XXX

提交日期

XXXXXXXX



目录

1.引言 2

2.需求分析阶段 3

2.1需求分析阶段目标 3

2.2本系统需完成的功能 3

2.3.数据流图 4

2.4.数据字典 5

3.概念设计阶段 7

3.1引言 7

3.2 E-R 7

3.2.1局部E-R 7

3.2.2全局E-R 9

4.逻辑结构设计 10

4.1E-R图转换成关系模式 10

4.2逻辑关系图 10

4.3数据库模式定义 10

5.物理结构设计 13

5.1物理设计阶段的目标与任务 13

5.2查询和添加功能模块图 13

6.数据库实施阶段 14

6.1建立数据库 14

6.2各表建立 14

6.3 建立触发器 16

6.4前台设计图 17

6.5数据库主码和外码图 19

7.总结 22

8.致谢 23



1.引言

现今很多送水服务公司接话时都要询问客户编号、地址和姓名等诸多客户资料,从而导致接电话需要很长时间,而且容易造成客户不满意,接话员也累,效率又低。在用水旺季电话较多时由于接话员效率低,不可避免的会发生漏接电话等情况,失去一定送水客户。在这种情况下,拥有一个专业的针对送水行业上述问题的软件系统就成为同行业中竞争发展的有利优势。

另外,目前市场上这方面的软件系统使用范围比较有限,就算有使用的也很少涉及送水配送业务。目前大多数公司现行的管理系统虽然解决了公司业务上的处理问题,但在员工工作效率、客户信息管理、信息查询分析等方面不完善,需要进一步的优化系统处理业务流程和解决公司以往单人操作系统处理烦琐事务等问题。

因此一个良好的送水系统至关重要



2.需求分析阶段

2.1需求分析阶段目标

1.通过信息列表存储员工、客户、供应商、矿泉水、仓库、费用的基本信息和实体之间的联系实现其管理;

2.利用一些实体的属性实现查询、添加、删除、更新操作,建立相应的触发器和存储过程实现对数据的统计、分析,用于作为公司人员、客户、供应商、矿泉水、仓库、费用管理之前事务的总结和以后的计划。

2.2本系统需完成的功能

管理员对员工 、客户、矿泉水的类别、供应商的信息、收费、销售订单进行增、删、改、查管理

功能模块图为

2-1

员工管理:新建、查询、编辑、删除员工信息、奖惩、权限管理

客户管理:新建、查询、编辑、删除客户信息

矿泉水管理:新建、查询、编辑、删除矿泉水信息,实现时时更新

供应商管理:新建、查询、编辑、删除供应商信息,实现时时更新以保证公司利益

订单管理:新建、查询、订单编辑、删除订单信息

费用管理:新建、查询、编辑、删除财务报表,统计、比较各级阶段的财务情况

进货管理:新建、查询、编辑、删除进货订单信息,与供应商的联系,交易,员工人员分配

销售管理:新建、查询、编辑、删除销售信息,与客户的联系,交易,员工人员分配,做好售后服务等

2.3.数据流图

图2-2进货数据流图

2-3销售数据流图

2-4入库出库数据流图

2.4.数据字典

列名

说明

类型

备注

PID

商品ID

INT

不允许为空,主键

Wname

商品名称

Char(50)

不允许为空

producttype

商品型号

Char(50)

不允许为空

description

描述

Char(500)

不允许为空

quantity

数量

char(1000)

不允许为空

CID

顾客ID

INT

不允许为空,主键

Cname

顾客名称

Char(30)

不允许为空

Phone

电话

Char(20)

不允许为空

address

详细地址

Char(30)

不允许为空

SID

供应商ID

INT

不允许为空,主键

Sname

供应商名称

Char(30)

不允许为空

phone

电话

Char(20)

不允许为空

address

详细地址

Char(50)

不允许为空

postcode

邮政编码

Char(6)

不允许为空

qq

QQ号

Char(50)

不允许为空

remarks

备注

Char(100)

允许为空

HID

员工ID

INT

不允许为空,主键

Hname

员工姓名

Char(30)

不允许为空

phone

电话

Char(20)

不允许为空

BID

进货号ID

INT

不允许为空,主键

SID

供应商ID

INT

不允许为空

PID

商品ID

INT

不允许为空

Bdate

购进时间

Smalldatetime

不允许为空

Bquantity

数量

Char(1000)

不允许为空

Pbuy

购入价格

INT

不允许为空

Bstituation

是否付费

INT

不允许为空

SellID

出售ID

INT

不允许为空,主键

CID

顾客ID

INT

不允许为空

HID

员工ID

INT

不允许为空

PID

商品ID

INT

不允许为空

Sdate

出售时间

Smalldatetime

不允许为空

Squantity

商品数量

INT

不允许为空

Psell

商品单价

money

不允许为空

Ssituation

是否收到费用

INT

不允许为空

CostID

费用

INT

不允许为空,主键

Real With

应付

INT

不允许为空

Receivable

已付

INT

不允许为空

Cash

现金

INT

不允许为空



3.概念设计阶段

3.1引言

系统开发的总体目标是实现送水的订单、客户及员工管理,缩短查询的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到送水效率的目的。

主要任务是对矿泉水表、供应商表、员工表、出售详情表、顾客表及费用表的操作及处理。

概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。

3.2E-R图

3.2.1局部E-R图

3-1 商品入库

3-2 销售图

3-3配送图

3.2.2全局E-R图

3-4全局E-R图



4.逻辑结构设计

4.1E-R图转换成关系模式

员工:{员工ID员工姓名,电话,备注}

顾客:{顾客ID顾客姓名,详细地址,电话,备注}

矿泉水:{商品ID商品名称,描述,数量}

购进:{进货ID供应商ID商品ID购进时间购入价格是否付费,备注}

供应商:{供应商编号,单位名称,地址,电话}

费用:{费用ID应付,已付,现金}

售:{出售ID顾客编号员工ID商品ID出售时间,数量,单价,是否收到费用,备注}

注明主码和外码

4.2逻辑关系图

图4-1

4.3数据库模式定义

列名

说明

类型

备注

PID

商品ID

INT

不允许为空,主键

Wname

商品名称

Char(50)

不允许为空

producttype

商品型号

Char(50)

不允许为空

description

描述

Char(500)

不允许为空

quantity

数量

char(1000)

不允许为空

表4-1 矿products泉水表

列名

说明

类型

备注

CID

顾客ID

INT

不允许为空,主键

Cname

顾客名称

Char(30)

不允许为空

Phone

电话

Char(20)

不允许为空

address

详细地址

Char(30)

不允许为空

remarks

备注

Char(100)

允许为空

表4-2 Customers顾客表

列名

说明

类型

备注

SID

供应商ID

INT

不允许为空,主键

Sname

供应商名称

Char(30)

不允许为空

phone

电话

Char(20)

不允许为空

address

详细地址

Char(50)

不允许为空

postcode

邮政编码

Char(6)

不允许为空

qq

QQ号

Char(50)

不允许为空

remarks

备注

Char(100)

允许为空

表4-3 Supplier供应商表

列名

说明

类型

备注

HID

员工ID

INT

不允许为空,主键

Hname

员工姓名

Char(30)

不允许为空

phone

电话

Char(20)

不允许为空

remarks

备注

Char(100)

允许为空

表4-4 hydrotechnic员工表

列名

说明

类型

备注

BID

进货号ID

INT

不允许为空,主键

SID

供应商ID

INT

不允许为空

PID

商品ID

INT

不允许为空

Bdate

购进时间

Smalldatetime

不允许为空

Bquantity

数量

Char(1000)

不允许为空

Pbuy

购入价格

INT

不允许为空

Bstituation

是否付费

INT

不允许为空

remarks

备注

char(100)

允许为空

表4-5 Buying购进表

列名

说明

类型

备注

SellID

出售ID

INT

不允许为空,主键

CID

顾客ID

INT

不允许为空

HID

员工ID

INT

不允许为空

PID

商品ID

INT

不允许为空

Sdate

出售时间

Smalldatetime

不允许为空

Squantity

商品数量

INT

不允许为空

Psell

商品单价

money

不允许为空

Ssituation

是否收到费用

INT

不允许为空

remarks

备注

Char(100)

允许为空

表4-6Sell出售详情

列名

说明

类型

备注

CostID

费用ID

INT

不允许为空,主键

Deal With

应付

INT

不允许为空

Receivable

已付

INT

不允许为空

Cash

现金

INT

不允许为空

表4-7 Cost费用表



5.物理结构设计

5.1物理设计阶段的目标与任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:

(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;

(2)对物理结构进行评价,评价的重点是时间和空间效率。

5.2查询和添加功能模块图

5-1

6.数据库实施阶段

6.1建立数据库

CREATE DATABASE 111

6.2各表建立

(1)供应商表建立

CREATE TABLE supplier (

[SID] [int] NOT NULL,

[Sname] [char](30) NOT NULL,

[phone] [char](20) NOT NULL,

[address] [char](50) NOT NULL,

[postcode] [char](6) NULL,

[qq] [char](50) NULL,

[remarks] [char](200) NULL

(2)矿泉水表的建立

CREATE TABLE products(

[PID] [int] NOT NULL,

[Wname] [char](50) NOT NULL,

[producttype] [char](50) NOT NULL,

[description] [char](500) NULL,

[quantity] [char](1000) NOT NULL,

3)购进表的建立

CREATE TABLE Buying(

[BID] [int] NOT NULL,

[SID] [int] NOT NULL,

[PID] [int] NOT NULL,

[Bdate] [smalldatetime] NOT NULL,

[Bquantity] [char](1000) NOT NULL,

[Pbuy] money NOT NULL,

[Bsitutation] [int] NOT NULL,

[remarks] [char](1000) NULL

(4)顾客表的建立

CREATE TABLE customers(

[CID] [int] NOT NULL,

[Cname] [char](30) NOT NULL,

[phone] [char](30) NOT NULL,

[address] [char](30) NOT NULL,

[remarks] [char](100) NULL

5)员工表的建立

CREATE TABLE hydrotechnic(

[HID] [int] NOT NULL,

[Hname] [char](30) NOT NULL,

[phone] [char](20) NOT NULL,

[remarks] [char](100) NULL

(6)出售表的建立

CREATE TABLE Sell(

[SellID] [int] NOT NULL,

[CID] [int] NOT NULL,

[HID] [int] NOT NULL,

[PID] [int] NOT NULL,

[Sdate] [smalldatetime] NOT NULL,

[Squantity] [int] NULL,

[Psell] [money] NOT NULL,

[Ssituation] [int] NOT NULL,

[remarks] [char](100) NULL

7)费用表的建立

CREATE TABLE Cost(

[CostID] [int] NOT NULL,

[Deal With] [int] NOT NULL,

[Receivable] [int] NOT NULL,

[Cash] [int] NOT NULL

(8)存储过程

查询每月用水量最大的10个用户,并按数量递减

ifobject_id('pro_2','pro')is not null

drop procedure pro_2

go

create procedure pro_2(@yuefen_inint)

as

begin

select top(10) customers.Cname,Sell.Squantity'购水量'

fromSell,customers

whereSell.CID=customers.CID and @yuefen_in=datepart(mm,Sdate)

group by customers.Cname,Sell.Squantity

order by count(Sell.Squantity) desc

end

go

6.3建立触发器

实现购入和销售时矿泉水的增加和减少

矿泉水购入

create trigger tri_Buying

on Buying for insert

as declare @PID int,@quantity int

select @PID=PID from inserted

update products set quantity=quantity+@quantity where PID=@PID

go

矿泉水销售

create trigger tri_Sell

on Sell for insert

as declare @PID int,@Squantityint

select @PID=PID from inserted

select @Squantity=Squantity from inserted

update products set quantity=quantity_@Squantity where PID=@PID

go

6.4前台设计图

6-1 登录

图6-2 功能界面

6-3订单查询

6-4 员工信息查询

图6-5 添加订单

6.5数据库主码和外码图

6-6 购进表

6-7 费用表

6-8 顾客表

6-9 矿泉水表

6-10 出售表

6-11供应商表

6-12员工表



7.总结

这次课程设计使我懂得了许多也对关于数据库的许多知识有了更深层次的来了解,也认识到了需求分析的重要性,以往的学习都太不在意了,导致有许多方面不懂,请教了别人才知道,而且对C#的一些代码有了一个新的认识,并且学到了如何连接两者。关于数据库范式和聚簇的一些相关知识所以以后要更加努力的学习,增加自己的学识,用知识来充实和武装自己。

在建立数据库期间,如何建立外键,如何建立check约束,如何自动生成数据关系图刚开始都是问题,但是通过翻阅课本和网上浏览相关资料,这些问题都得到了解决,而且学会了一个课程设计的每个步骤。

该数据库具有员工管理、客户信息管理、矿泉水管理、仓库管理、订单管理、进货管理、销售管理功能,由最初的问题描述,需求分析到后面的概念模型设计、逻辑模型设计、物理设计实现具体的数据库表的创建、数据插入、查询,触发器和存储过程的创建,由于本人能力有限,所以在前台不能实现删除和修改功能。



8.致谢

在这次数据库课程设计的整个过程中,都受到了指导教师尚佩妮老师、林基艳老师细心的指导和关怀。对此,表示忠心的感谢!没有老师的耐心指导,我不可能如此顺利的完成此次课程设计的任务。是两位老师的帮助,让我意识到自己设计中出现的种种问题,并且通过查找资料去解决它。

同时也感谢给过我帮助和鼓励的同学,是他们的帮助与鼓励,在我遇到困难时,为我点亮了希望的灯塔;在我灰心丧气时,带给我力量和信心。

送水公司的送水系统

相关推荐