1、销售管理系统数据库设计某制造企业销售管理系统数据库设计一、需求分析(一)业务流程:1、销售部统计商品信息,向客户发布商品信息。2、客户根据销售部发布的商品信息,向销售部发送订单。3、销售部将订单发送给主管部门审核。4、主管部门对订单进行核对:(1)如果不批准订单,主管部门向客户发布不批准的信息;(2)如果批准,主管部门向客户发布批准的信息;销售部获取批准的订单,核对客户信息,登记新客户的基本资料或修改原有客户的基本资料,同时及时发布商品修改后的信息;生产部门接受订单,生产客户所需的商品,生产完成后,将发货单与商品一同发出。5、客户确认发货单。(二)数据流程图 填写 上报 核对 确认 基本信息
2、处理订单 客户信息 员工信息销售管理系统第一层数据流程图第二层数据流程图:核对 填写 上报 客户信息 员工信息P1 基本信息 订单数据 审核 预订单 订单 商品信息 预订单 订单 发货确认 信贷状况P2订单处理(3)数据字典1、订单号数据项可以描述如下 : 数据项 : 订单号含义说明 : 唯一标识每张订单 别名 : 订单编号 类型 : 字符型 长度 : 4取值范围 : 0000至 9999取值含义 : 前 2 位标别所在地区,后 2 位按顺序编号与其他数据项的逻辑关系 :唯一识别订单2、商品信息是该系统中的一个重要数据结构,它可以描述如下 :数据结构 : 商品信息含义说明 : 是销售管理系统的
3、重要数据结构,定义了销售商品的具体信息 组成 : 产品号,产品名,单价,重量3、数据流 “ 订单数据 可描述如下 : 数据流 : 订单数据 说明 : 客户选购商品所下的初始订单数据流来源 : 客户数据流去向 : 接受订单 组成 : 客户基本信息商品编号数量等 平均流量 : 5张天高峰期流量 : 100张天4、数据存储 “订单 可描述如下 : 数据存储 : 订单表 说明 : 记录每张订单的具体情况流入数据流 : 订单处理流出数据流 : 组成 : 订单号,客户编号,产品,数量,单价等 数据量 : 每年2000张 存取方式 : 随机存取5、处理过程 “ 接收订单 可描述如下 : 处理过程 : 接收订
4、单 说明 : 核准客户所下订单 输入 : 订单数据,商品信息,主管审批 输出 : 核对订单至主管部门,是否确认信息给客户 处理 : 接收到客户订购产品的初始订单后,根据商品信息以及客户以往的信用情况,核准订单是否符合条件,然后将符合条件的订单送主管部门报批,如果同意,将结果反馈给客户,并将核准后订单送下一处理模块(订单处理)2、概念结构设计客户信贷状况客户号客户名地址电话订货订单订单编号客户名订货日期订货数交货日期跟单员工年龄性别员工号姓名住址组成订单明细订单编号订货数金额明细号参照商品商品名称商品号重量单价电话 1 N N 1 1 N N 13、逻辑结构设计依据以上ER图,得出如下关系模式:
5、客户:客户号,客户名,电话,地址,信贷状况商品:商品号,商品名,单价,重量员工:员工号,姓名,性别,年龄,电话,地址订单:订单编号,客户名,订货数,订货日期,交货日期,客户号, 员工号订单明细:订单编号,明细号,订货数,金额,商品号客户信息属性名数据类型可否为空备注客户号varchar(10)否主键客户名varchar(30)否电话varchar(20)否地址varchar(100)否信贷状况varchar(200)否员工信息属性名数据类型可否为空备注员工号varchar(10)否主键姓名varchar(20)否性别Char(2)否男或女,默认为男年龄smallint否大于18,小于60电话v
6、archar(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否四、物理结构设计 为了提高系统性能,我们将数据的易变部分与稳定部分、经常存取部分与存取频率较低部
7、分分开存放;而现有的关系型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,地址 v
8、archar(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(sage18 and sage500);4查找订单编号为01230810的订单的所有信息 Select * From 订单信息 Where 订单编号=01230810;6创建触发器,存储过程1.在数据库中建立一触发器,当删除了订
9、单的时候,把相应的订单明细删除Use xx企业数据库GOCrete trigger tri_订单信息 on 订单For delectAsIfrowcount = 0ReturnDelete 订单明细Where订单号 in (select 订单号 from deleted)Iferror!=0BeginRollback tran ReturnEnd Return GO2.在数据库中建立一个存储过程,返回指定时间内需要发货的商品数量Use xx企业数据库If exists(select name from sysobjectsWhere name=procedureand type=p)Drop proc procedureCreate proc procedurebegining date Datetime,ending date Datetime,ASSelect sum(订货数量)From 订单Where 交货日期 between beginning date And ending dateGO六、总结(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1