当前位置:文档之家› 仓库管理数据库设计与实现

仓库管理数据库设计与实现

课程设计设计题目:仓库管理数据库设计与实现课程名称:信息系统数据库技术(一)学期: 2010-2011学年第一学期专业班级:管小芬学号: ********* *名:***任课老师:蔡妙娴仓库管理数据库设计与实现一、系统开发目的通过理论与实践教学,掌握关系型数据库的基本操作,理解关系型数据库的有关概念,具备一定的数据库结构设计的能力,并能综合运用所学知识,进行小型数据库应用系统的开发工作。

本次课程设计是基于ACCESS 2003(或SQL SERVER)数据库进行的仓库管理数据库系统设计与实现。

二、系统概述此系统建立了仓库数据库应用系统,适用于拥有仓库的小型或大型企业。

用户主要为小型或大型公司的仓库管路员。

该系统应能完成以下主要功能:(1)对供应商、客户、供应商联系人、客户联系人、退料单、领料单、报损单、入库单、销售单、进货订单、员工、仓库等信息进行储存、查询和管理。

(2)对员工的的工作情况、仓库物品进出情况、客户的订购情况、供应商的供应情况进行系统的监督和管理。

三、数据模型设计由用户业务需求得出数据E_R模型。

参考书上第四章实例分析的格式。

1、供应商信息列表上图为该仓库的供应商信息数据,根据该数据women可以得其供应商的信息中包含了三个实体,供应商实体、业务员、供应商联系人。

分析说明:供应商里面一定会有联系人用来联系业务员,且根据仓库系统的信息,一个供应商只能填一个联系人,联系人也可以为空置,联系人只能属于一个供应商,不能同时属于多个供应商,没有供应商就不会有联系人,一个业务员可以不联系或者联系一个、联系多个供应商,但一个供应商只能由一个业务员来联系;一个供应商只能属于一个类别,一种类别可以不对应过着对应一个或多个供应商。

2 客户信息表该客户信息涉及了三个实体,即客户实体、业务员实体、客户联系人实体。

分析说明:客户可以有一个或多个联系人,但一个联系人只能属于一个客户所以客户对客户联系人的关系为一对多;一个客户只能由能和一个业务员联系,但一个业务员可以没有客户,有一个客户,或多个客户所以客户和业务员的关系为一对多的非ID相关。

3 商品信息表分析说明:一个商品只能属于一个类别,但一个类别中可以有多种商品;一个商品也只能属于一个品牌,但一个品牌下会有多个商品。

4、仓库信息表分析说明:一个仓库必须要有一个且只能有一个职员也就是仓管员来管,而一个仓管员能关一个也可以管多个仓库,所以仓管员对仓库的关系式一比多,两个实体是非ID依赖,所以用虚线连接5、进货订单信息表分析说明:一个进货订单只能对应一个供应商、一个仓库,但一个供应商、一个仓库、可同时有很多个订单,一个进货订单肯定是由一个业务员发出的,但一个业务员可以发出多个订单,订单里面可以有多个商品,一个商品可以在多个订单中出现;一个业务员只能属于一个部门,但一个部门可以有多个业务员6销售订单信息表分析说明“一个销售订单里可以有多个商品,一种商品也可以在多个销售订单里出现,所以商品和销售订单的关系是多对多,从图可知,一个订单只能对应一个客户,一个仓库,只能由一个业务员发出,一个业务员可以不发订单也可以发一个或多个订单,部门里面有一个或多个人业务员,一个业务员只能属于一个部门,一个仓库、一个客户可以同时在多个销售订单里面出现,7、采购入库信息表分析说明:一个采购入库单只能由一个供应商,也只能由一个业务员那里发出,只针对一个仓库,一个仓库可以没有入库单,可以有一个或多个入库单,一张采购入库单可以有多种商品,一种商品也可以在多个采购单里出现;一个供应商可以不提供,可以提供一张或多张如采购入库单,业务员只能是属于一个部门,一个部门,可以有多个业务员。

8、销售出库信息表分析说明:销售出库单只能对应一个客户、一个员工、一个仓库,但是一个员工可以开出多个销售出库单,一个客户也可以有多个销售出库单,一个仓库里也可以有多个销售出库单,一个销售出库单里可以有多个商品,一种商品也可以在多个销售出库单里出现。

9、领单信息表分析说明:一张领料单只能对应一个仓库,并且只能有一个员工开出,但一张领料单里可以对应多个商品,一种商品也能在多个领料单里出现;一个仓库可以有多个领料单,一个员工可以开出多个领料单。

10、退料信息表分析说明:一张退料单只能给一个仓库,只能有一个员工开出,可以有多个商品,一种商品可以在多个退料单里出现,一个业务员可以开出多张退料单,一个仓库也可以有多个退料单。

11、报损信息表分析说明:一张报损单只能对应一个仓库,一个仓库可以有没有货有一个、多个报损单;一张报损带只能由一个员工开出,一个员工可以不开火开出一张、多张报损单;一张报损单可以有多个商品,一种商品也可以在多张报损单里出现。

12、员工信息表分析说明:一个员工只能属于一个部门,但一个部门一定会有一个或多个员工。

13、部门信息表14、仓库调拨单信息表一张调拨单可以有多个商品,一种商品一可以再多个调拨单里出现;一张调拨单只能有一个员工开出,一个员工可以不开或开一个、很多个调拨单,一个仓库必须要有一个员工来管理,一个员工可以不管或管一个、多个仓2、四、数据库设计。

由E_R模型转换成数据表,建立表间联系。

设计各种数据约束。

规范表设计至4NF1、以上E-R,模型转化为表间联系,如下图图十五所示。

其尸体及其属性如下所示(带有下划线的是主键,斜字体的是外键)。

(1)供应商(供应商编号、员工编号、名称、类别、通讯地址、收货地址、邮编、电话、信用金额、传真、网址、email)(2)供应商联系人(供应商联系人编号、供应商编号、供应商联系人名字、供应商联系人手机)(3)客户(客户编号、员工编号、名称、类别、等级、电话、传真、邮编、email、网址、通讯地址、收货地址、状态、类型)(4)客户联系人(客户联系人编号、员工编号、客户编号、客户联系人名字、客户联系人手机)(5)员工(员工编号、部门编号、姓名、性别、薪水、提成率、电话、职称、年龄、出生日期、email、手机、身份证号码、入职日期、学历)(6)部门(部门编号、部门名称)(7)仓库(仓库编号、员工编号、仓库名称、位置、面积)(8)退料单(退料单编号、仓库编号、退料单日期、备注)(9)调拨单(调拨单编号、仓库编号、调拨单日期、备注)(10)报损单(报损单编号、仓库编号、报损单日期、备注)(11)入库单(入库单据编号、入库单据日期、入库类型、备注)(12)领料单(领料单编号、仓库编号、领料单日期、备注)(13)进货订单(进货订单编号、仓库编号、商品编号、供应商编号、进货订单日期、备注)(14)销售订单(销售订单编号、客户编号、仓库编号、销售订单日期、备注)(15)商品(商品编号、名称、类别、名称品牌、条码编号、型号规格、数量、产地、厂家、基本单位、进价、销价、最高库存、最低库存、备注)(16)调拨单据明细表(调拨单据明细表编号、调拨单编号、仓库编号、商品编号、商品名称、规格、数量、成本价、销售价、包装数、单位、备注)(17)销售出库单明细表(销售出库单明细表编号、销售订单编号、商品编号、商品名称、规格、基本单位、备注、折扣、单价、进货金额、金额)(18)领料单据明细表(领料单据明细表编号、领料单编号、商品编号、商品名称、规格、基本单位、数量、单位、备注)(19)采购入库单明细表(采购入库单明细表编号、入库单编号、商品编号、商品名称、基本单位、数量、单价、进货金额、金额)(20)报损单明细表(报损单明细表编号、报损单编号、商品编号、商品名称、规格、基本单位、数量、成本价、成本金额、包装数、单位、备注)(21)退料单明细表(退料单明细表编号、退料单编号、商品编号、商品名称、规格、基本单位、数量、备注)(22)进货订单明细表(进货订单明细表编号、进货订单编号、商品编号、商品名称、基本单位、原价格、折扣、单价、金额、已入库数量、规格、备注)(1)在供应商、供应商联系人、客户、客户联系人、员工信息表中都出现了同样地两个问题。

第一就是电话号码、电子邮箱和手机的多只问题。

一个供应商和客户可以有多个电话和电子邮箱,联系人和员工也可以有多个手机号码。

但在本数据库中,我们有前提假设,即在登记信息时供应商、供应商联系人、客户、客户联系人登记信息时只要求填写一个电话、一个电子邮件,袁洪和联系人在登记表时也只能填写一个手机号码。

第二个问题是员工表中,员工姓名、性别、年龄、完全依赖于身份证号,而身份证又是非主属性,则不满足范式的要求。

但在实际情况中,在查看员工信息中,应该马上就能得知其身份证号码,用以确定其什么的可能性。

因为虽然其没有满足凡是要求,但出于现实考虑,也为了提要查询和管理效率,,还是将身份证放入员工表中。

3、设置数据约束(1)check约束:学历:小学、初中、高中、大学、中专、大专;手机和电话为数字;商品类别:薯片、果冻、饼干、其他。

(2)默认值约束:默认值不可以随便乱设,要不然会造成很严重的错误,所以我只将性别设置默认值为“女”。

(3)有效性约束:将int型属性的数字范围作出了规定。

如员工联系人年龄是大于18小于100,员工工资大于0等。

(4)主键和外键约束:在每个实体中都设置了主键和需要的外键,具体设置在数据库时间部分进行具体说明。

出了身份证和电话、的后记的问题,解决了以上问题,表设计已经达到了4NF的要求。

五、数据库实现。

基于Access或SQL SERVER环境,建立数据库,建立数据表,建立表间联系,实现各种数据约束。

1、有效性规则部门信息表退料单信息客户联系人信息供应商编号供应商联系人信息报损单信息入库单信息领料单编号进货订单编号商品信息2、表间关系六、调试运行说明。

输入测试数据进行调试分析,给出调试运行的有关情况说明。

1、在输入数据时出现了下面这种情况,不能保存遇到上述情况我返回了相关的数据表并仔细的研究了老师给的模板的课程设计后发现了模板上面的外键索引全部是“有(有重复)”于是,我便将自己的数据库表格进行了修改,修改之后,依旧不能输入数据,于是我返回供应商的表,填入数据,并将供应商表有的数据编号填入,就没有出现上述问题了。

2、这是我在输入仓库面积时遇到的情况,我本来输得数据时300*500,看到这情况后,我仔细想了想后,我修改了仓库面积,将面积改小,就没有出现上述问题了3、在我输入员工电话和供应商、客户等的电话时,在关闭的时候我有出此案了上面出现过的这个问题,这可就让我非常郁闷了能因为这不存在面积数字等的问题,于是我就决定刨根接地的搞懂它了,我百度了下也问了其他的同学,在经过一番努力后,我才知道,电话号码的数据类型不是数字,而是文本,你说这我怎么想得到啊,不过庆幸的是我最后还是知道了,并成功输入了数据。

七、总结总结个人在本次课程设计中遇到的问题和心得体会。

相关主题