商场采购管理系统 第3页
图11
(2)商品验收入库
商品的验收入库主要涉及两个实体集,一个是商品信息一个是申请采购记录其E-R图如下:
图12
下面是跟公司采购相关的一些E-R图:
图13图14
2.3.2全局概念模式设计
将上述局部的概念模式设计的E-R图集成起来,及得到全局概念模式的E-R图。在这个过程,应消除原先各图中存在的冲突和不一致的地方,进行必要的合并和重构。上面的局部E-R图去掉多余的部分,进行修改得到下面的总的E-R图:图15 全局E-R图
2.4 数据逻辑设计
数据库的逻辑结构与所采用的数据库管理系统有关,因此首先要面临DBMS的选择,然后是如何将一种概念模式映射为逻辑模式,最后是优化。
2.4.1 DBMS 的选择
DBMS的选择取决于多种因素,包括技术,经济,安全以及管理政策等方面。在这里我不作过多的解释,大家可以参考相关的更详细的相关书籍的解释说明。
2.4.2 数据模型映射
将数据库概念模式映射为数据逻辑模式,也就是把E-R图模型转换为关系模型。具体转换的方法是:分别将每个实体集转换为关系,再将每个联系集也转换为关系。于是由上面的E-R图得出以下关系模式。
将实体集映射为关系
请购单(编号,商品名,厂家,价格,数量,申请部门)
供货商(单位名称,地址,联系人,电话,E-mail,开户行,账号)
其余的信息同上结合E-R图编制出来。
2.4.3 数据库结构优化和完整性设计
从以上的E-R图得到了几个有关采购管理的表。这样的数据结构通常还需要优化。其优化结构一般包括三步:首先检查是否存在冗余的表和可以合并的表;第二步是按照关系数据库的规划化理论,检查每一个表是否达到优化(一般遵循第三范式);第三步对照需求,检查每一项功能所需的数据是否dou有相应的数据库表的支撑。
(1)表的合并
一般来说,主码相同的两个表可以合并。我们知道,由“一对多”或“多对一”的联系集映射得来的表,其主码与代表“多”端实体集的表相同,故通常由由“一对多”或“多对一”联系集映射得来的表可以合并到代表“多”端实体集的表中去。以下为我优化上面的E-R图而得。
采购报价表(报价编号,商品编号,客户编号,报价金额,创建日期,备注)
采购订单表(采购退货编号,采购订单编号,状态:创建 审核 入库 完成,退货日期,商品金额
其他费用,总费用,备注,创建人,创建日期)
采购商品表(编号,商品编号,采购订单编号,客户编号,购买数量,单价,备注,订单和退货标记:0-订单;1-退货,是否审核:0-未审核;1-审核)
类型信息表(类型编号,类型名称,类型的分类)
发票信息表(发票编号,客户编号,发票抬头,发票类型编号,发票金额,出票日期,发票状态
0-创建;1-审核,备注)
由上面的整合后我得到了相关的5个表。
(2)规划化
(3)检查需求的每一项功能
(4)完整性设计
完整性设计是为了确定每个表的主码,外码和被参照的关系。如采购报价表中商品编号是外码,它参照采购商品表中的商品编号等等。具体的表见下面数据库表的结构说明。
表1 采购报价表PurchareQuote
编号 字段名称 数据结构 说明
1 QuoId int 报价编号
2 ProId int 商品编号
3 CustId int 客户编号
4 QuotePrice Decimal(15,2) 报价金额
5 CreateDate Datetime 创建日期
6 Memo Varchar(2000) 备注
表2 类型信息表Types
编号 字段名称 数据结构 说明
1 Id int 编号
2 Receive int 收货订单编号
3 GetFlag int 收货阶段编号
4 Memo Varchar(2000) 备注
表3 采购订单表PurchaseOrder
编号 字段名称 数据结构 说明
1 PurId Varchar(50) 采购退货编号
2 EmpId int 采购订单编号
3 Satus Varchar(20) 状态:创建 审核
4 GetDate Varchar(50) 退货日期
5 ProSum Decimal(9,2) 商品金额
6 OtherCost Decimal(9,0) 其他费用
7 Total Decimal(9,2) 总费用
8 CreateDate Datetime 创建日期
9 Poster Varchar(40) 创建人
10 Memo Varchar(2000) 备注
表4 采购商品表 PurProductList
编号 字段名称 数据结构 说明
1 Id Int 编号
2 ProId Int 商品编号
3 PurId Varchar(50) 采购订单编号
4 CustId Int 客户编号
5 Quantity Int 购买数量
6 Price Intdecimal(9,2) 单价
7 Memo Varchar(2000) 备注
8 Flag Tinyint 订单和退货标记:0-订单;1-退货
9 isCheck Tinyint 是否审核:0-未审核;1-审核
表5 发票信息表Invoice
编号 字段名称 数据结构 说明
1 InvId Int 发票编号
2 CustId Int 客户编号
3 Title Varchar(200) 发票抬头
4 TypeId Int 发票类型编号
5 InvSum Decimal(15,2) 发票金额
6 InvDate Datetime 出票日期
7 Flag Tinyint 发票状态:0-创建;1-审核
8 Memo Varchar(1000) 备注
表6 部门表Departments
编号 字段名称 数据类型 说明
1 DepId Int 部门编号,主键
2 DepName Varchar(40) 部门名称
3 Describes Varchar(250) 部门智能描述
上一页 [1] [2] [3] [4] [5] [6] 下一页