销售管理系统数据库设计

销售管理系统数据库设计
销售管理系统数据库设计

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

一、需求分析

(一)业务流程:

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

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

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

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

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

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

5、客户确认发货单。

(二)数据流程图

P2订单处理

(三)数据字典

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

数据项 : 订单号

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

别名 : 订单编号

类型 : 字符型

长度 : 4

取值范围 : 0000至 9999

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

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

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

数据结构 : 商品信息

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

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

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

数据流 : 订单数据

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

数据流来源 : 客户

数据流去向 : 接受订单

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

平均流量 : 5张/天

高峰期流量 : 100张/天

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

数据存储 : 订单表

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

流入数据流 : 订单处理

流出数据流 : ……

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

数据量 : 每年2000张

存取方式 : 随机存取

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

处理过程 : 接收订单

说明 : 核准客户所下订单

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

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

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

二、概念结构设计

员工号}

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

客户信息

员工信息

商品信息

订单明细

订单

四、物理结构设计

为了提高系统性能,我们将数据的易变部分与稳定部分、经常存取部分与存取频率较低部分分开存放;而现有的关系型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 客户号=‘’;

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 exists(select 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

六、总结(心得)

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

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

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

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