软件工程

来源:互联网 发布:淘宝客怎么不能提现 编辑:程序博客网 时间:2024/05/03 19:26

某制造企业销售管理系统数据库设计

一、需求分析

(一)业务流程:

1、销售部统计商品信息,向客户发布商品信息。

2、客户根据销售部发布的商品信息,向销售部发送订单。

3、销售部将订单发送给主管部门审核。

4、主管部门对订单进行核对:

1)如果不批准订单,主管部门向客户发布不批准的信息;

2)如果批准,主管部门向客户发布批准的信息;销售部获取批准的订单,核对客户信息,登记新客户的基本资料或修改原有客户的基本资料,同时及时发布商品修改后的信息;生产部门接受订单,生产客户所需的商品,生产完成后,将发货单与商品一同发出。

5、客户确认发货单。

(二)数据流程图

P1基本

信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2订单处理

P3发货处理

客户

客户

员工

 

 

     填写       上报        核对                 确认

 

             基本信息             处理订单

 

 

 

   客户信息          员工信息

 

 

销售管理系统第一层数据流程图

 

 

P1.1客户信息

客户

 

 

 

 

 

 

 

 

 

 

 

P1.2员工信息

员工

第二层数据流程图:

核对

             填写                        上报

 

 

 

 

 

          客户信息                    员工信息

 

P1 基本信息

 

P2.1下单

客户

P2.2审核订单

主管部门

P2.3处理订单

客户

 

          订单数据             审核

 

                 预订单              订单

 

 

  商品信息            预订单                订单     发货确认

        信贷状况

 

P2订单处理

 

 

 

 

 

 

(三)数据字典

1订单号数据项可以描述如下 :

  数据项 :  订单号

含义说明 :  唯一标识每张订单

    别名 :  订单编号

    类型 :  字符型

    长度 :  4

取值范围 :  0000 9999

取值含义 :  2 位标别所在地区,后 2 位按顺序编号

与其他数据项的逻辑关系 :唯一识别订单

2、商品信息是该系统中的一个重要数据结构,它可以描述如下 :

数据结构 :  商品信息

含义说明 :  是销售管理系统的重要数据结构,定义了销售商品的具体信息

    组成 :  产品号,产品名,单价,重量 

3、数据流 “ 订单数据 " 可描述如下 :

    数据流 :  订单数据

      说明 :  客户选购商品所下的初始订单

数据流来源 :  客户

数据流去向 :  接受订单

      组成 :  客户基本信息+商品编号+数量等

  平均流量 :  5张/天

高峰期流量 :  100张/天

4、数据存储 “订单 " 可描述如下 :

  数据存储 :  订单表

      说明 :  记录每张订单的具体情况

流入数据流 :  订单处理

流出数据流 :  ……

      组成 :  订单号,客户编号,产品,数量,单价等

    数据量 :  每年2000

  存取方式 :  随机存取

5、处理过程 “ 接收订单 " 可描述如下 :

  处理过程 :  接收订单

      说明 :  核准客户所下订单

      输入 :  订单数据,商品信息,主管审批

      输出 :  核对订单至主管部门,是否确认信息给客户

      处理 :  接收到客户订购产品的初始订单后,根据商品信息以及客户以往的信用情况,核准订单是否符合条件,然后将符合条件的订单送主管部门报批,如果同意,将结果反馈给客户,并将核准后订单送下一处理模块(订单处理)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、概念结构设计

客户

信贷状况

客户号

客户名

地址

电话

订货

订单

订单编号

客户名

订货日期

订货数

交货日期

跟单

员工

年龄

性别

员工号

姓名

住址

组成

订单明细

订单编号

订货数

金额

明细号

参照

商品

商品名

商品号

重量

单价

电话

 

 

 

 

         1

 

 

         N

                 N              1

 

         1

 

 

 

         N

                N                     1

 

 

 

 

 

三、逻辑结构设计

依据以上ER图,得出如下关系模式:

客户:{客户号,客户名,电话,地址,信贷状况}

商品:{商品号,商品名,单价,重量}

员工:{员工号,姓名,性别,年龄,电话,地址}

订单:{订单编号,客户名,订货数,订货日期,交货日期,客户号,

       员工号}

订单明细:{订单编号,明细号,订货数,金额,商品号}

 

客户信息

属性名

数据类型

可否为空

备注

客户号

varchar(10)

主键

客户名

varchar(30)

 

电话

varchar(20)

 

地址

varchar(100)

 

信贷状况

varchar(200)

 

 

 

员工信息

属性名

数据类型

可否为空

备注

员工号

varchar(10)

主键

姓名

varchar(20)

 

性别

Char(2)

男或女,默认为男

年龄

smallint

大于18,小于60

电话

varchar(20)

 

住址

varchar(100)

 

 

 

商品信息

属性名

数据类型

可否为空

备注

商品号

varchar(10)

主键

商品名

varchar(20)

 

单价

Money

 

重量

Int

 

 

 

订单明细

属性名

数据类型

可否为空

备注

订单编号

varchar(10)

外键

明细号

Char(2)

01,默认0

订货数量

Int

 

金额

Money

 

 

 

订单

属性名

数据类型

可否为空

备注

订单编号

varchar(10)

主键

客户号

varchar(10)

外键

订货数量

Int

 

订货日期

Smalldatetime

 

交货日期

Smalldatetime

 

 

四、物理结构设计

    为了提高系统性能,我们将数据的易变部分与稳定部分、经常存取部分与存取频率较低部分分开存放;而现有的关系型DBMS中都提供了聚簇功能,往往在高频度访问字段上设计聚簇索引,例如:在员工数据表的姓名字段上建立一聚簇索引:

CREATE CLUSTERED INDEX idx_xm ON 员工数据表(姓名)

在商品信息表的商品名字段上建立一聚簇索引:

CREATE CLUSTERED INDEX idx_xm ON 商品信息表(商品名)等等。

 

五、数据实施和维护

1.     创建表

创建客户信息用户表

Create table 客户信息

(客户号 varchar(10) primary key

客户名 varchar(30) not null

电话 varchar(20) not null

地址 varchar(100) not null

信贷状况 varchar(200) not null)

 

创建员工信息用户表

Create table 员工信息

(员工号 varchar(10) primary key

姓名 varchar(20) not null

性别 char(2) check(ssex in ('','')) default '',

年龄 Smallint check(sage>18 and sage<60),

电话 varchar(20) not null

地址 varchar(100) not null)

 

创建商品信息用户表

Create table 商品信息

(商品号 varchar(10) primary key

商品名 varchar(20) not null

单价 Money not null,

重量 int not null)

 

创建订单用户表

Create table 订单

(订单编号 varchar(10) primary key

客户号 varchar(10) foreign key references 客户信息(客户号),

订货数量 int not null

订货日期 smalldatetime not null

交货日期 smalldatetime not null)

 

创建订单明细用户表

Create table 订单明细

(订单编号 varchar(10) foreign key references 订单(订单编号),

明细号 char(2) check(ssex in ('0','1')) default '0',

订货数量 int not null

金额 Money not null)

 

2.创建视图

Create  view   客户下订单信息视图

As  select  客户号,客户名,订单编号,借阅时间,应还时间

From  客户信息,订单

Where 客户号=‘2010010203’;

 

 

3.建立索引

在主键属性和外键属性列上都建立索引,检查唯一性和完整性,加快连接查询速度。

 

Create  unique index IX_客户号 on 客户信息(客户号);

 

Create  unique index IX_员工号on 员工信息(员工号);

 

Create  unique index IX_商品号 on商品信息(商品号);

 

Create  unique index IX_订单编号 on订单明细(订单编号);

 

Create  unique index IX_订单编号on 订单(订单编号);

 

Create  unique index IX_客户号 on 订单(客户号);

 

 

4.表中数据操作

1.企业制造一种新产品作为新商品,商品编号‘100823’,商品名‘XX

Instert  into  商品信息

Values  (100823’,‘XX’,‘10’,‘2)

 

2.企业一种商品因市场原因停产下线

Delete  from 商品信息

where  商品号=081012’

 

3.企业某一个客户江文更改联系电话为158XXXXXXXX

Update 客户信息

Set   电话=‘158XXXXXXXX

     Where 客户名=‘江文’;

 

5.使用表格操作

1.查找企业一个名叫李开的员工的所有信息

   Select  *

From  员工信息

Where 姓名=李开

 

2.查找姓“陈”且名字为三个汉字的客户信息

Select *

Form 客户信息

Where 客户名like ‘张_ _’;

 

3.查询所有订货数量在500以上的客户信息

Select *

From 客户信息

Where 客户号=

select 客户号

From  订单

Where 订货数量>500);

 

4查找订单编号为‘01230810’的订单的所有信息

   Select *

   From 订单信息

   Where 订单编号=01230810’

 

6.创建触发器,存储过程

1.在数据库中建立一触发器,当删除了订单的时候,把相应的订单明细删除

Use xx企业数据库

GO

Crete trigger tri_订单信息 on 订单

For delect

As

If@@rowcount = 0

Return

Delete 订单明细

Where订单号 in select 订单号 from deleted

If@@error=0

Begin

Rollback tran

Return

End

     Return

 GO

 

 

2.在数据库中建立一个存储过程返回指定时间内需要发货的商品数量

Use xx企业数据库

If existsselect name from sysobjects

Where name=procedure’and type=p’)

Drop proc procedure

Create proc procedure@begining date Datetime,@ending date Datetime,

AS

Select sum(订货数量)

From 订单

Where 交货日期 between @beginning date

         And @ending date

GO

 

 

六、总结(心得)

和传统管理模式相比较,使用本系统,毫无疑问会大大提高企业的销售管理的运作效率,辅助提高企业的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少客户订货时间,增加客流量,提高客户满意度,增强企业销售的扩张能力, 提供有效的技术保障。

由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:本系统只适合小型企业使用,不能适合中大型企业使用;企业销售管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能……

这次数据库课程设计给我的最大的印象就是如果自己有了想法,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知,我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年我会继续学习它。

 

原创粉丝点击