某制造企业销售管理系统数据库设计一、需求分析(一)业务流程:1、销售部统计商品信息,向客户发布商品信息。
2、客户根据销售部发布的商品信息,向销售部发送订单。
3、销售部将订单发送给主管部门审核。
4、主管部门对订单进行核对:(1)如果不批准订单,主管部门向客户发布不批准的信息;(2)如果批准,主管部门向客户发布批准的信息;销售部获取批准的订单,核对客户信息,登记新客户的基本资料或修改原有客户的基本资料,同时及时发布商品修改后的信息;生产部门接受订单,生产客户所需的商品,生产完成后,将发货单与商品一同发出。
5、客户确认发货单。
(二)数据流程图客户员工客户填写上报核对确认P1 基本基本信息P2 订单处理订单P3 发货处理处理信息客户信息员工信息销售管理系统第一层数据流程图第二层数据流程图:客户填写P1.1 客户信息客户信息客户订单数据核对P1 基本信息主管部门审核员工上报P1.2 员工信息员工信息P2.1下单预订单P2.2 审核订单订单P2.3 处理订单商品信息预订单订单发货确认信贷状况客户P2 订单处理(三)数据字典1、订单号数据项可以描述如下 :数据项 :订单号含义说明 :唯一标识每张订单别名 :订单编号类型 :字符型长度:4取值范围 : 0000至9999取值含义 :前2位标别所在地区,后2位按顺序编号与其他数据项的逻辑关系: 唯一识别订单2、商品信息是该系统中的一个重要数据结构,它可以描述如下:数据结构 :商品信息含义说明 :是销售管理系统的重要数据结构,定义了销售商品的具体信息组成 :产品号,产品名,单价,重量3、数据流“订单数据 " 可描述如下 :数据流 :订单数据说明 :客户选购商品所下的初始订单数据流来源 :客户数据流去向 :接受订单组成 :客户基本信息+商品编号+数量等平均流量 :5张/天高峰期流量 :100张/天4、数据存储“订单 " 可描述如下 :数据存储 :订单表说明 :记录每张订单的具体情况流入数据流 :订单处理流出数据流 :,,组成 :订单号,客户编号,产品,数量,单价等数据量 :每年2000张存取方式 :随机存取5、处理过程“ 接收订单"可描述如下:处理过程 :接收订单说明 :核准客户所下订单输入 :订单数据,商品信息,主管审批输出 :核对订单至主管部门,是否确认信息给客户处理: 接收到客户订购产品的初始订单后,根据商品信息以及客户以往的信用情况,核准订单是否符合条件,然后将符合条件的订单送主管部门报批,如果同意,将结果反馈给客户,并将核准后订单送下一处理模块(订单处理)二、概念结构设计客户名客户号信贷状况地址客户电话1订员工号订货数货姓名N订单编号N1性别订单跟单员工客户名年龄订货日期住址1交货日期电话组成商品名N商品号订单明细1参照商品重量订单编号N明细号金额单价订货数三、逻辑结构设计依据以上 E—R 图,得出如下关系模式:客户: { 客户号,客户名,电话,地址,信贷状况}商品: { 商品号,商品名,单价,重量}员工: { 员工号,姓名,性别,年龄,电话,地址}订单: { 订单编号,客户名,订货数,订货日期,交货日期,客户号,员工号 }订单明细: { 订单编号,明细号,订货数,金额,商品号}客户信息属性名数据类型可否为空客户号varchar(10)否客户名varchar(30)否电话varchar(20)否地址varchar(100)否信贷状况varchar(200)否员工信息属性名数据类型可否为空员工号varchar(10)否姓名varchar(20)否性别Char(2)否年龄smallint否电话varchar(20)否住址varchar(100)否备注主键备注主键男或女,默认为男大于 18,小于 60商品信息属性名数据类型可否为空备注商品号varchar(10)否主键商品名varchar(20)否单价Money否重量Int否订单明细属性名数据类型可否为空备注订单编号varchar(10)否外键明细号Char(2)否0 或 1,默认订货数量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.企业某一个客户江文更改联系电话为158XXXXXXXXUpdate 客户信息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 企业数据库GOCrete trigger tri_订单信息on订单For delectAsIf@@rowcount = 0ReturnDelete订单明细Where订单号 in(select订单号from deleted)If@@error !=0BeginRollback tranReturnEndReturnGO2.在数据库中建立一个存储过程,返回指定时间内需要发货的商品数量Use xx 企业数据库If exists (select name from sysobjects Wherename=‘ procedure ’and type= ‘p’) Dropproc procedureCreate proc procedure@begining date Datetime,@ending date Datetime,ASSelect sum( 订货数量 )From 订单Where 交货日期 between @beginning dateAnd @ending dateGO六、总结(心得)和传统管理模式相比较,使用本系统,毫无疑问会大大提高企业的销售管理的运作效率,辅助提高企业的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少客户订货时间,增加客流量,提高客户满意度,增强企业销售的扩张能力,提供有效的技术保障。