销售管理系统数据库设计.docx
《销售管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《销售管理系统数据库设计.docx(12页珍藏版)》请在冰豆网上搜索。
销售管理系统数据库设计
某制造企业销售管理系统数据库设计
一、需求分析
(一)业务流程:
1、销售部统计商品信息,向客户发布商品信息。
2、客户根据销售部发布的商品信息,向销售部发送订单。
3、销售部将订单发送给主管部门审核。
4、主管部门对订单进行核对:
(1)如果不批准订单,主管部门向客户发布不批准的信息;
(2)如果批准,主管部门向客户发布批准的信息;销售部获取批准的订单,核对客户信息,登记新客户的基本资料或修改原有客户的基本资料,同时及时发布商品修改后的信息;生产部门接受订单,生产客户所需的商品,生产完成后,将发货单与商品一同发出。
5、客户确认发货单。
(二)数据流程图
填写上报核对确认
基本信息处理订单
客户信息员工信息
销售管理系统第一层数据流程图
第二层数据流程图:
核对
填写上报
客户信息员工信息
P1基本信息
订单数据审核
预订单订单
商品信息预订单订单发货确认
信贷状况
P2订单处理
(3)数据字典
1、订单号数据项可以描述如下:
数据项:
订单号
含义说明:
唯一标识每张订单
别名:
订单编号
类型:
字符型
长度:
4
取值范围:
0000至9999
取值含义:
前2位标别所在地区,后2位按顺序编号
与其他数据项的逻辑关系:
唯一识别订单
2、商品信息是该系统中的一个重要数据结构,它可以描述如下:
数据结构:
商品信息
含义说明:
是销售管理系统的重要数据结构,定义了销售商品的具体信息
组成:
产品号,产品名,单价,重量
3、数据流“订单数据"可描述如下:
数据流:
订单数据
说明:
客户选购商品所下的初始订单
数据流来源:
客户
数据流去向:
接受订单
组成:
客户基本信息+商品编号+数量等
平均流量:
5张/天
高峰期流量:
100张/天
4、数据存储“订单"可描述如下:
数据存储:
订单表
说明:
记录每张订单的具体情况
流入数据流:
订单处理
流出数据流:
……
组成:
订单号,客户编号,产品,数量,单价等
数据量:
每年2000张
存取方式:
随机存取
5、处理过程“接收订单"可描述如下:
处理过程:
接收订单
说明:
核准客户所下订单
输入:
订单数据,商品信息,主管审批
输出:
核对订单至主管部门,是否确认信息给客户
处理:
接收到客户订购产品的初始订单后,根据商品信息以及客户以往的信用情况,核准订单是否符合条件,然后将符合条件的订单送主管部门报批,如果同意,将结果反馈给客户,并将核准后订单送下一处理模块(订单处理)
2、概念结构设计
1
N
N1
1
N
N1
3、逻辑结构设计
依据以上E—R图,得出如下关系模式:
客户:
{客户号,客户名,电话,地址,信贷状况}
商品:
{商品号,商品名,单价,重量}
员工:
{员工号,姓名,性别,年龄,电话,地址}
订单:
{订单编号,客户名,订货数,订货日期,交货日期,客户号,
员工号}
订单明细:
{订单编号,明细号,订货数,金额,商品号}
客户信息
属性名
数据类型
可否为空
备注
客户号
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)
否
0或1,默认0
订货数量
Int
否
金额
Money
否
订单
属性名
数据类型
可否为空
备注
订单编号
varchar(10)
否
主键
客户号
varchar(10)
否
外键
订货数量
Int
否
订货日期
Smalldatetime
否
交货日期
Smalldatetime
否
四、物理结构设计
为了提高系统性能,我们将数据的易变部分与稳定部分、经常存取部分与存取频率较低部分分开存放;而现有的关系型DBMS中都提供了聚簇功能,往往在高频度访问字段上设计聚簇索引,例如:
在员工数据表的姓名字段上建立一聚簇索引:
CREATECLUSTEREDINDEXidx_xmON员工数据表(姓名);
在商品信息表的商品名字段上建立一聚簇索引:
CREATECLUSTEREDINDEXidx_xmON商品信息表(商品名)等等。
五、数据实施和维护
1.创建表
创建客户信息用户表
Createtable客户信息
(客户号varchar(10)primarykey,
客户名varchar(30)notnull,
电话varchar(20)notnull,
地址varchar(100)notnull,
信贷状况varchar(200)notnull)
创建员工信息用户表
Createtable员工信息
(员工号varchar(10)primarykey,
姓名varchar(20)notnull,
性别char
(2)check(ssexin('男','女'))default'男',
年龄Smallintcheck(sage>18andsage<60),
电话varchar(20)notnull,
地址varchar(100)notnull)
创建商品信息用户表
Createtable商品信息
(商品号varchar(10)primarykey,
商品名varchar(20)notnull,
单价Moneynotnull,
重量intnotnull)
创建订单用户表
Createtable订单
(订单编号varchar(10)primarykey,
客户号varchar(10)foreignkeyreferences客户信息(客户号),
订货数量intnotnull,
订货日期smalldatetimenotnull,
交货日期smalldatetimenotnull)
创建订单明细用户表
Createtable订单明细
(订单编号varchar(10)foreignkeyreferences订单(订单编号),
明细号char
(2)check(ssexin('0','1'))default'0',
订货数量intnotnull,
金额Moneynotnull)
2.创建视图
Createview客户下订单信息视图
Asselect客户号,客户名,订单编号,借阅时间,应还时间
From客户信息,订单
Where客户号=‘2010010203’;
3.建立索引
在主键属性和外键属性列上都建立索引,检查唯一性和完整性,加快连接查询速度。
CreateuniqueindexIX_客户号on客户信息(客户号);
CreateuniqueindexIX_员工号on员工信息(员工号);
CreateuniqueindexIX_商品号on商品信息(商品号);
CreateuniqueindexIX_订单编号on订单明细(订单编号);
CreateuniqueindexIX_订单编号on订单(订单编号);
CreateuniqueindexIX_客户号on订单(客户号);
4.表中数据操作
1.企业制造一种新产品作为新商品,商品编号‘100823’,商品名‘XX’
Instertinto商品信息
Values(‘100823’,‘XX’,‘10’,‘2’)
2.企业一种商品因市场原因停产下线
Deletefrom商品信息
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.在数据库中建立一触发器,当删除了订单的时候,把相应的订单明细删除
Usexx企业数据库
GO
Cretetriggertri_订单信息on订单
Fordelect
As
If@@rowcount=0
Return
Delete订单明细
Where订单号in(select订单号fromdeleted)
If@@error!
=0
Begin
Rollbacktran
Return
End
Return
GO
2.在数据库中建立一个存储过程,返回指定时间内需要发货的商品数量
Usexx企业数据库
Ifexists(selectnamefromsysobjects
Wherename=‘procedure’andtype=‘p’)
Dropprocprocedure
Createprocprocedure@beginingdateDatetime,@endingdateDatetime,
AS
Selectsum(订货数量)
From订单
Where交货日期between@beginningdate
And@endingdate
GO
六、总结(心得)
和传统管理模式相比较,使用本系统,毫无疑问会大大提高企业的销售管理的运作效率,辅助提高企业的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少客户订货时间,增加客流量,提高客户满意度,增强企业销售的扩张能力,提供有效的技术保障。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:
本系统只适合小型企业使用,不能适合中大型企业使用;企业销售管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能……
这次数据库课程设计给我的最大的印象就是如果自己有了想法,就动手去做,困难在你的勇气和毅力下是抬不了头的。
从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。
出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知,我完成了这次数据库课程设计,不过这只是我学习路上的驿站,未来十年我会继续学习它。