课程设计说明书NO.1仓库管理系统设计1.课程设计的目的本需求的编写目的在于研究仓库管理系统软件的开发途径和应用方法。本需求的预期读者是与仓库管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。通过本系统软件,能帮助工作人员利用计算机,快速方便的对仓库的货物进行管理、输入、输出、查找等操作,将货物的管理具体化、直观化、合理化。2.设计方案论证2.1设计思路(需求分析)由于货物的种类数量的纷繁复杂,比较难管理,给工作人员的工作带来诸多不便.此系统的开发就是专门解决工作人员在这些烦琐的问题。此系统适用于仓库,它是比较完善的系统管理软件。此系统的采用方便了仓库管理人员对仓库的管理,对管理人员的工作起到重要作用。通过本系统软件,能帮助工作人员利用计算机,快速方便的对仓库的货物进行管理、输入、输出、查找等操作,将货物的管理具体化、直观化、合理化。通过该系统所记录的数据,可以使仓库管理者对货物的进出情况管理的更清楚,使仓库管理系统更完善,。减轻工作人员的工作负担,使工作简化,从而对货物进行更井井有条的管理。该系统应具备内部管理和外部管理两大基本模块,其具体功能如下表所示:表2.1管理模块功能表功能模块用户外部模块内部模块操作员和系统管理员通过应用界面,应用程序,查询等。同过SQL语言,对数据库的查询、插入、修改、删除等操作。该系统的总体功能框图如下所示:沈阳大学课程设计说明书NO.2图2.1仓库管理系统总体结构框图2.2概念结构设计2.2.1关系模型供应商表(编号,公司名称,联系人,地址,电话)主码为编号,符合三范式货物表(编号,名称,规格,型号,数量,标准价格,货物重量,销售价格)主码为编码,符合三范式客户表(编号,名称,联系人,地址,电话,手机,)主码为编号,符合三范式仓库表(编号,名称,面积,类型,管理员,地址,电话,用户号)主码为编码,符合三范式用户表(编号,姓名,职位,权限,用户名,密码)主码为编码,符合三范式供应表(货物号,供应商号)主码为货物号,供应商号,符合三范式取货表(客户号,仓库号)主码为客户号,仓库号,符合三范式储存标(货物号,仓库号)主码为货物号,仓库号,符合三范式2.2.2系统E-R图(1)实体及其属性沈阳大学仓库管理系统货物出货情况货物进货情况用户管理课程设计说明书NO.3图2.2货物实体E-R图图2.3仓库实体E-R图图2.4供应商实体E-R图沈阳大学课程设计说明书NO.4图2.5客户实体E-R图图2.6用户实体E-R图(2)总体系统E-R图沈阳大学课程设计说明书NO.5图2.7总体系统结构E-R图沈阳大学课程设计说明书NO.62.3逻辑设计文档2.3.1表的建立表2.2供应商表(supply)列名含义长度类型NULLDEFAULTSID编号8IntNoNoSname公司名称20Char()NoNoScon联系人6Char()NoNoSdr地址30Char()NoNoStele电话15intNoNo表2.3货物表(goods)列名含义长度类型NULLDEFAULTGID货物编号8intNoNoGname名称20Char()NoNoGsta规格8Char()NoNoGtype型号8Char()NoNoGqty数量8intNoNoGSP销售价格8intNoNoGDP标准价格8intYesNo表2.4客户表(costom)列名含义长度类型NULLDEFAULTCID编号8intNoNoCname名称8Char()NoNoCcon联系人6Char()NoNoCdr地址20Char()NoNoCtele电话15intNoNoChand手机15intYesNo表2.5用户表(users)列名含义长度类型NULLDEFAULTUID编号8IntNoNoUname姓名8Char()NoNoUpos职位10Char()yesNoUla权限8Char()NoNoUsub用户名15Char()NoNoUkey密码15intNoNo沈阳大学课程设计说明书NO.7表2.6仓库表(warehouse)列名含义长度类型NULLDEFAULTWID编号8intNoNoWname名称20Char()NoNoWsq面积6intYesNoWtype类型8Char()NoNoWad管理员6Char()NoNoWdr地址20Char()NoNoWtele电话15IntNoNoUID编号8IntNoNo表2.7供应表(accommdate)列名含义长度类型NULLDEFAULTGID货物编号8intNoNoSID编号8IntNoNo表2.8取货表列名含义长度类型NULLDEFAULTWID编号8intNoNoCID编号8intNoNo表2.9储存表列名含义长度类型NULLDEFAULTGID货物编号8intNoNoWID编号8intNoNo2.4物理设计文档(一)数据库及基本表1建立进库系统Createdatabaseingoods(1)建立供应商表use[ingoods]go沈阳大学课程设计说明书NO.8createtablesupply(SIDintprimarykeynotnull,Snamechar(20)notnull,Sconchar(6)notnull,Semailchar(20),Spintnotnull,Sdrchar(30),Steleint)(2)建立货物表use[ingoods]gocreatetablegoods(GIDintprimarykeynotnull,Gnamechar(20)notnull,Gstachar(8)notnull,Gtypechar(8)notnull,Gptyintnotnull,GSPintnotnull,GDPint,Gweiintnotnull)2建立出库系统Createdatabaseoutgoods(1)建立客户表沈阳大学课程设计说明书NO.9use[outgoods]gocreatetablecostom(CIDintprimarykeynotnull,Ccrechar(6),Cconchar(6)notnull,Cdrchar(20)notnull,Cteleintnotnull,Chandintnotnull,CODchar(15),Ccardintnotnull,Ccomchar(20)notnull,Cemailchar(20))3建立货物转移系统Createdatabasechansfergoods(1)建立仓库表use[chansfergoods]gocreatetablewarehouse(WIDintprimarykeynotnull,Wnamechar(20)notnull,Wsqint,Wtypechar(8)notnull,Wadchar(6)notnull,沈阳大学课程设计说明书NO.10Wdrchar(20)notnull,Wptyint,Wteleintnotnull)4建立用户系统Createdatabasecostom(1)建立用户表use[costom]gocreatetableusers(UIDintprimarykeynotnull,Unamechar(8)notnull,Uposchar(10)notnull,Ulachar(8)notnull,Usubchar(15)notnull,Ukeyintnotnull)(二)视图1在货物表中对货物价格为5000的货物建立视图createviewid_goods(id_GID,Gname,Gsta,Gtype,Gpty,GSP,GDP,Gwei)asselect*fromgoodswhereGSP='5000'2在供应商表中对邮编为一12开头的供应商建立视图沈阳大学课程设计说明书NO.11createviewid_supply(id_SID,Sname,Scon,Semail,Sp,Sdr,Stele)asselect*fromsupplywhereSp='12____'(三)索引1为warehouse表按编号升序建立唯一索引createuniqueindexwarwidonwarehouse(WIDASC)2在warehouse表中按电话的降序建立唯一索引createuniqueindexwarteleonwarehouse(Wteledesc)3.设计结果及分析图2.8建立各管理子数据库系统过程图沈阳大学课程设计说明书NO.12图2.9建立各管理子数据库系统结果图图2.10建立表过程图沈阳大学课程设计说明书NO.13图2.11货物信息表属性图图2.12供应商信息表属性图沈阳大学课程设计说明书NO.14图2.13客户信息表属性图图2.14仓库信息表属性图沈阳大学课程设计说明书NO.15图2.15客户信息表属性图图2.16建立视图过程图沈阳大学课程设计说明书NO.16图2.17建立视图结果图图2.18建立索引结果图沈阳大学课程设计说明书NO.17图2.19仓库信息表索引属性图4.设计体会在这次数据库课程设计中,我花了3周的时间做需求分析和数据库设计,只用了不到一周的时间编写程序。开始时真的不知道该怎么做,仓库管理系统到底要创建哪些表,表里到底要有哪些数据项,这些都很模糊。于是就找别人的设计作参考,按着设计要求一步一步的设计。需求分析真的很重要,也不容易,比编程还难。在需求设计阶段,把系统的功能勾画出来,分析系统的数据字典、数据流向,画出E-R图,根据E-R图数据库设计关系模型,这样一步步下来,自己对仓库管理系统有更多的了解,对后面的程序编程也明朗了。在数据库设计的时候也花了不少的时间,多次的在数据库关系模型、E-R沈阳大学课程设计说明书NO.18图和数据字典之间循环修改,重复的修改完整性定义,优化表格。在定义check完整时发现SQL的check完整性定义失效,翻书发现原来SQL对check的完整性定义还没有强化。等数据关系模型最终确定了,才开始设计索引和触发子。之后的编程就简单多了。在数据库设计期间,我是在设计的过程中就去创建数据库,建表,所以当修改完整性定义和数据项时现得相当麻烦,因为有主键外键的完整性定义在修改时就不好做了。最终结论,我该把数据库设计完后才去创建数据库创建完整性定义等等,还有一点是创建表时最好也把后面程序功能的需要考虑进来。在这次数据库课程设计中真的学到不少。沈阳大学课程设计说明书NO.19参考文献[1]王珊,萨师瑄.数据库系统概论[M].第四版.高等教育出版社,2006.5:198-234.[2]陈世红,王晓海等.SQLServer2000管理、开发与应用实例详解[M].北京:人民邮电出版社,2006:233-246.[3]孔令慧,陈涵.SQLServer数据库应用及程序开发[M].北京:化学工业出版社,2007:267-289.沈阳大学课程设计说明书NO.20沈阳大学