仓库管理系统本科毕业论文设计.doc
仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分)摘要仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本信息管理、入库管理、库存管理、查询管理等模块组成。本系统是在以SQL SERVER 2000作为后台数据库,以Visual C+ 6.0为编程语言来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。本文重点讨论数据库的设计,应用和基本信息管理模块,入库管理模块的设计与实现。关键字:仓库;管理系统;数据库The design and realization of the Administrative System Of The Warehouse (The design of the database and information management and entering warehouse management )AbstractThe administrative system of the warehouse is designed for realizing the systematization , standardization and automization of enterprise's products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management originally , prevents from various kinds of mistakes because of administrative staff neglect and the quality problem of management and offeres powerful tool and management way to complet storehouse management for prompt , accurate , high-efficient . The administrative system of the warehouse is a medium and small-scale database management system,it has not only beautiful interface, but also the high security and the simply operation , and meet the demand for storehouse management basically. the whole system is consist of molds of basic information management, entering warehouse, storage management and inquiry management,etc.The Warehouse administrative system is designed with regarding SQL SERVER 2000 as the backstage database and regarding Visual C+ 6.0 as programming language . The administrative system is effectual, the high data accuracy during the course of operating , improves working efficiency and realizes computerization for storehouse management at the same time . This thesis focuses on the research of data base's design, application, management of basic information as well as the design and realize of the entering warehouse management.Key word: The Warehouse ;Administrative System; The Database仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分)毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它目 录第一章 仓库管理系统概述1第二章 系统可行性分析22.1课题研究现状22.2 需求分析22.2.1 可行性需求分析22.2.2 业务需求分析32.2.3 功能需求分析4第三章 系统设计5第四章 数据库设计方案64.1数据库需求分析64.2数据库概念模型设计64.3数据库逻辑模型设计84.4具体逻辑模型设计104.5物理结构设计114.6 数据库连接实现15第五章 系统主窗体设计17第六章 基本信息管理模块设计19第七章 入库管理模块设计237.1 商品入库237.2 商品退货26第八章 设计总结29参考文献30致 谢3131第一章 仓库管理系统概述在市场竞争的微利时代,建立科学,规范,高效管理制度成为了企业管理的当务之急.一个企业在市场中是否具有强有力的竞争力,除了要看企业的人才,资金,技术,产品之外,更重要的一项,就是要看企业是否有一个良好的管理体制.在企业管理工作中,仓库管理工作更是管理中的重中之重.通过对企业仓库信息的管理与统计,为企业积累真实,有效的数据,通过对这些数据的分析与研究,对企业各方面做出相应的调整,以提高企业的管理工作效率,使企业走上良性发展道路.进一步促进仓管部门规范化管理,提高管理效率和水平;能够方便快捷地将原来分散的货物信息进行有机地组织和管理,及时提供可靠信息,为企业的科学化决策提供重要依据.本系统专为企业仓库管理而设计的系统,可以直接把它运作在企业的内部服务器上,帮助管理企业和实现真正的库存管理无纸化和自动化。仓库管理系统柔合了基本信息管理,入库管理,库存管理,库存查询的功能,同时还具备了不同用户权限设定的功能,该系统一般都是操作简单,功能强大,易于安装维护和升级,同时加上人性化的设计,能为库存管理带来极大的方便和效率的提高。这里来讨论一下管理信息系统的相关介绍,管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。管理信息系统在企业中的应用存在三个要素,这就是人、计算机和数据。在计算机软件技术中,人机界面已经发展成为一个重要的分支。MIS人机界面设计一般遵循以下一些基本原则:以通信功能作为界面设计的核心,界面必须始终一致,界面必须使用户随时掌握任务的进展情况,界面必须能够提供帮助,界面友好、使用方便,输入画面尽可能接近实际,具有较强的容错功能管理信息系统的开发过程一般包括系统开发准备、系统调查、系统分析、系统设计、系统实现、系统转换、系统运行与维护、系统评价等步骤。根据开发系统的大小、复杂、投入、方式、方法等因素的不同,各步骤的要求和内容也不同,用户需要根据实际情况进行取舍和计划。在这里,系统维护与评价阶段是系统生命周期中的最后一个阶段,也是时间最长的一个重要阶段,就像汽车的维护工作好可以延长汽车的使用寿命和提高其使用效率一样,系统维护工作的好坏可以决定系统的生命周期的长短和使用效果。第二章 系统可行性分析2.1课题研究现状库存管理对企业来说是一项繁琐复杂的工作,每天要处理大量的单据数据。为及时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全,库管人员要花费大量人力物力和时间来作数据记录统计工作。 在世界发达国家,库存管理的计算机化水平已经很高了,尽管我国的生产企业在这方面也有了很强的意识和长足的进步,但仍存在这样、那样的一些问题。表现之一:有的企业单位的库存管理部分目前仍为手工、半手工操作。表现之二:有的单位的库存管理部已上了微机,但对微机的利用效率极低,有的在用它打游戏,有的仅把它当计算器或打字机来用。表现之三:有的企业单位既有了微机同时也有了库存管理软件,但硬件上去了,软件上不去。国内其他相似的仓库管理系统例如用友U8的进销存管理系统,基本的功能都已经可以实现了,但是使用上也有点复杂,本系统是把主要的功能都实现出来。本系统是实现了,结合了手动加自动的方式实现数据录入与处理的方便和智能化,界面采用自定义工具栏和菜单方式使得程序界面更加美观和个性化。融合先进的管理理念,创新的关联技术:使得模块关联、更好的交换信息;强大的工作流引擎应用于各个模块。模块本身就运用目前比较流行的SQL2000 server 和 Visual C+ 6.0技术,紧跟潮流又不拘于现状。在模块开发过程中大量使用集合的思想,实现代码的简洁和易读性,能为以后的代码调试和修改升级带来方便。2.2 需求分析2.2.1 可行性需求分析本设计从一下三个方面进行可行性研究:1. 技术可行性。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人已经有了Visual C+ 6.0和Sql Server 2000开发基础,而且通过2年的学习和实践,对开发管理信息系统又有了新的认识和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。2. 经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。3. 操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。2.2.2 业务需求分析操作员进入登录界面,填入用户名和密码,如果都正确就自动转到主界面。操作员可以通过如下方式进入相应的功能界面:工具栏;菜单栏和左边的树型导航条。进入基本信息管理模块,可以对操作员信息,商品信息,库存信息和供应商信息进行添加,修改,查询,删除操作。进入入库管理模块,可以增加入库信息和退货信息,加上智能窗口弹出,操作方便,可以逼真得模仿真实操作流程。在此值得一提的是,由于本系统是分权限的,一般用户只能使用本系统的一部分功能,所以在一般用户里,系统所给出的功能也相当有限,以下图2.1也恰恰说明了这一点:图2.1 仓库管理系统业务流程图2.2.3 功能需求分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:基本信息管理:包括操作员管理,商品信息管理,库存信息管理,供应商信息管理入库管理:包括商品入库,入库退货库存管理:包括库存商品打印,库存盘点,库存调拨,库存上下限管理查询管理:包括商品入库查询,入库退货查询,报损|报益查询这4大功能已经可以完成了企业的仓库管理的业务流程了,具有很强的易操作性和易维护性。第三章 系统设计仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、盘点单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。 在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。统一各种原始单据的格式,统一报表的格式。删除不必要的管理冗余,实现管理规范化、科学化。程序代码标准化,软件统一化,确保软件的可维护性和实用性。界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。建立操作日志,系统自动记录所进行和各种操作图3.1显示了本系统的主要功能结构仓库管理系统基本信息管 理库存管理查询管理入库管理操作员管理商品信息管理库存信息管理供应商信息管理商品入库入库退货商品入库查询入库退货查询报损|报益查询库存商品打印库存盘点库存调拨库存上下限管理图3.1 系统功能模块图第四章 数据库设计方案4.1数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查有关仓库管理信息需求的基础上,得到图4.1所示的本系统所处理的数据流程。仓库现有库存汇总、处理各种单据产品入库产品调拨报表打印图4.1 系统数据流程图4.2数据库概念模型设计根据上面的设计规划出以下E-R图,如图4.2,4.3以及图4.4的实体间联系图:图4.2 出库管理相关E-R图图4.3 入库管理相关E-R图现有库存入库调拨报损|报益盘点退货 图4.4 实体与实体间的关系把E-R图转换为关系模型如下(黑色字体为主键,下划线为外键):tb_operator(name,password,level)tb_providerinfo(providername,artificialperson,principal,phone,addr,web,e_mail)tb_check_sub(checked,merchandiseid,sum)tb_check_main(checked,storage,principal,checktime,checkspec,memo)tb_storageinfo(storagename)tb_instock_sub(instockid,merchandiseID,unitPrice,numbers,rebate,paymoney,stockname)tb_cancelinstock_sub(CancelID,merchandiseID,unitPrice,numbers,rebate,paymoney,stockname)tb_cancelinstock_main(CancelID,provider,operator,rebate,sumtotal,paymoney,factmoney,intime)tb_merchandisestorage(merchandiseID,storagename,Storagenum,upperlimit,lowerlimit)tb_instore_main(ID,provider,operator,rebate,sumtotal,paymoney,factmoney,intime)tb_merchandiseinfo(ID,name,spec,shortname,defaultprice,manufacturer,memo)然后根据关系模型,在SQL 2000 中设计出表间的关系图,如图4.5所示: 图4.5 系统数据库关系图4.3数据库逻辑模型设计在介绍本系统的逻辑模型设计过程之前,我们先来看看下面图4.6和图4.7所示:应用1应用2应用3应用4子模式1子模式2子模式3213(全局逻辑) 模式物理模式OS数据库DBMS用户外模式外模式/模式映象模式模式/内模式映象内模式图4.6 数据库的三级模式和二级映象用户3用户2用户1视图1视图2视图3视图4基表2基表1基表3基表4基表5基表6外模式模式存储文件2存储文件3存储文件4存储文件5存储分区1存储分区2存储分区3外模式图4.7 SQL数据库对3级模式的支持存储文件6存储文件1仔细对上面两图分析可以得出从基本项构思实体联系模型四条原则:(如下:)原则1:(确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体;原则2:(确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。联系通常是某类行为动作,ERD中关注的是其状态与结果而非其过程;原则3:(确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识;原则4:(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。4.4具体逻辑模型设计具体逻辑模型设计就是把一般关系模型转换成具体DBMS支持的逻辑结构。随着业务由人工处理转变到以计算机系统及其网络为主要工具的人机结合处理,特别是数据从人工资料转变到以计算机系统中的数据库存储为主,计算机与人的互补性必然带来业务流程的质的变化。例如,计算机不能自动地象人那样发现并更正输入数据中的错误,所以要把好入口关,加强数据的输入校验;但只要输入数据是正确的,程序没有错误,计算机处理数据时就不会象人那样因为疏忽、疲劳、大意而出现错误,所以不需要象人工处理那样对中间结果不断地进行核对;等等。在数据库具体逻辑结构设计基本完成后,就必须考虑以数据库为中心的人机结合的新的业务流程及其所带来的影响 现在需要将在上面的数据库概念结构转化为Sql Server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。仓库管理信息系统数据库中各个表的设计结果如下面表格所示。每个表所示在数据库中的一个表。我根据上面所说的四条原则,按照如下方法设计数据库。本系统使用了11张数据表,分别为操作员信息表(tb_operator),供应商信息表(tb_providerinfo),库存盘点明细表(tb_check_sub),库存盘点主表(tb_check_main),库存信息表(tb_storageinfo),入库明细表(tb_instock_sub),入库退货明细表(tb_cancelinstrock_sub),入库退货主表(tb_cancelinstock_main),商品库存表(tb_merchandisestoage),商品入库主表(tb_instore_main),商品信息表(tb_merchandiseinfo)。表一 库存信息表(tb_storageinfo) 表二 操作员信息表(tb_operator) 表三 供应商信息表(tb_providerinfo) 表四 商品信息表(tb_merchandiseinfo) 表五 商品库存表(tb_merchandisestoage) 表六 商品入库主表(tb_instore_main) 表七 入库明细表(tb_instock_sub) 表八 库存盘点主表(tb_check_main) 表九 入库退货明细表(tb_cancelinstrock_sub) 表十 入库退货主表(tb_cancelinstock_main) 表十一 库存盘点明细表(tb_check_sub)4.5物理结构设计要实现物理结构设计,首先要了解物理结构设计的大体情况和一般方法,下面的两段文字详细介绍了数据库的物理结构设计。数据库实际是存储在物理设备上的DB在物理设备上的存储结构与存取方法称为DB的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是DB的物理设计。关系数据库中,一个关系通常就对应一个操作系统的数据文件存储,一般不必太多考虑其存储结构。存取方法是快速存取DB中数据的技术。DBMS一般都提供多种存取方法。常用的存取方法有三类:第一类是索引方法,目前主要是B+树索引方法;第二类是聚簇(Cluster)方法;第三类是HASH方法。B+树索引是DB中的经典存取方法,使用最普遍。在关系数据模型中,特别强调索引存取方法的选择:根据应用要求确定对关系的哪些属性建立索引、哪些属性建立组合索引、哪些索引要设计为唯一索引等。在VFP中,主索引是通过数据库表结构定义或修改中指定主码来建立与维护的;候选索引、唯一索引、普通索引可以通过索引命令建立与管理的。在物理设计中,通过在逻辑设计中得到的关系框架下增加索引行来指明:主码行中指定的一个字段为简单主码,或指定多个字段组成复合主码,要由其组成主索引表达式在数据库表结构定义中建立主索引;外码行中的单外码字段上直接建立外码普通索引,用同号数字标注的多个字段组成复合外码,这些字段组成索引表达式建立外码普通索引;索引行中,单字段索引可直接在其中标明索引类型,多字段复合索引则用同一数字标注,然后在说明中的索引类中用同一编号来说明该复合索引的类型与索引表达式。必须考虑数据库的安全性与完整性设计;为了进行本系统数据库的安全性与完整性设计,下面先分别给出数据库的安全性与完整性设计的一般方法:1DB安全性设计 DB安全性设计主要在应用程序模块设计中结合完成。应包括如下几方面:(1)用户标识与鉴别(Identification & Authentication):它是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用。为了进一步核实用户,系统常常要求用户输入口令(Password)。在用户管理模块中定义,在主控模块的欢迎子模块中执行。(2)存取控制:存取控制机制主要包括两部分: 定义用户权限:用户权限是指不同的用户对于不同的数据对象允许执行的操作权限。系统必须提供适当的语言定义用户权限,这些定义经过编译后存放在数据字典中,被称作安全规则或授权规则。 合法权限检查:每当用户发出存取DB的操作请求后(请求一般应包括操作类型、操作对象和操作用户等信息),DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行上述操作。用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。存取控制又可分为自主存取控制(DAC)和强制存取控制(MAC)两种方法。 自主存取控制方法:在此方法中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。大型DBMS几乎都支持自主存取控制,目前的SQL标准也对它提供支持,这主要是通过SQL的GRANT语句和REVOKE语句来实现。 强制存取控制方法:在此方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。因此,强制存取控制相对比较严格。它适用于那些对数据有严格而固定密级分类的部门。如政府部门或军事部门。在强制存取控制中,DBMS所管理的全部实体被分为主体和客体两大类。主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等。对于主体和客体,DBMS为它们每个实例指派一个敏感度标记(Label)。敏感度标记被分成若干级别,如绝密(Top Secret)、机密(Secret)、可信(Confidential)、公开(Public)等。主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标志称为密级(Classification Level)。强制存取控制机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。(3)视图机制:进行存取权限控制时可以为不同的用户定义不同的视图(View),把数据对象限制在一定的范围内,即通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。例如,用户只能按它的子模式中所包含的记录型存取记录和数据项,企图存取子模式中未定义的数据都是非法操作,DBMS拒绝执行并提出警告。另外,在子模式已定义的数据项目中,数据项目的操作方式有所区分,有的只能读,有的可更新,有的可删除,有的可追加,当企图更新一个只读的数据项目时,DBMS会拒绝执行并提出警告。(4)数据加密:数据加密是防止DB中数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(术语为明文,Plain Text)变换为不可直接识别的格式(术语为密文,Cipher Text),从而使得不知道解密算法的人无法获知数据的内容。它适合高度敏感性数据加密要求,例如财务数据、军事数据、国家机密等。(5)审计(Audit):任何系统的安全保护措施都不一定是绝对安全的。蓄意盗窃、破坏数据的人总是想方设法打破控制。审计功能把用户对DB的所有操作自动记录下来放入审计日志(Audit Log)中。DB管理员可以利用审计跟踪的信息,重现导致DB现有状况的一系列事件,找出非法存取数据的人、时间和内容等。2DB完整性设计DB的完整性是指数据的正确性和相容性,在数据库设计中要根据数据库中存储的数据的语义信息,结合具体DBMS确定其各个级别的各种完整性要求。 (1)字段(属性)级的完整性:通过在数据库表结构中增加字段完整性行,可以在该行的有字段完整性要求的字段所对应的单元格中指明“非空”来规定该字段不能取空值;标注、等标号,再在框架下部说明中的字段完整性说明中对相应标号列出具体要求。(2)记录(元组)级完整性:在框架下部说明中的记录完整性说明中列出具体要求。(3)表(关系)级完整性:包括函数依赖约束、实体完整性约束、统计约束。函数依赖约束主要是在数据库设计中通过规范化分解到BCNF或3NF,然后在关系模式定义中确定主码,再由DBMS保证主码取值不能重复来保证,在优化中降低了关系的规范化程度后,就一定要由DBA或应用程序员设计输入程序与修改程序(而不是DBMS提供的系统输入工具)来完成数据的输入与修改,这些程序中要有保证函数依赖约束的能力。实体完整性是指主码不能取空值,Sql Server 2000是在字段设计中指定的。统计约束是一个字段值与关系中多个记录的多个字段的统计值之间要满足的条件,这也是通过专门设计的输入或修改应用程序来控制的。后面两种约束要在表框架的完整性说明的表级完整性中具体规定。(4)参照完整性(RI):两个不同的数据库表(关系)的记录(元组)间的对应关系,主要指在建立父表主码到子表外码的永久关联的基础上,确定子表记录与相关联的父表记录之间的对应规则。设计参照完整性首先要画出数据库表间的永久关联图(如图4.8所示)商品入库主表供应商信息表入库明细表操作员信息表1:nn:n1:n 图4.8 入库关联图下面来讨论仓库管理系统的安全性设计及完整性设计安全性设计:DB安全性设计:本系统的SQL数据库连接字段信息放在了login.ini这个文件,修改起来十分方便,到时可以将这个文件放到远程服务器上,这样就可以避免了跟本程序放到同一个目录下被用户发现,加强了安全性。此系统的敏感度标记为:可信视图机制:通过设定用户登录权限来限制用户对数据的修改与否,管理员拥有本系统的一切功能和对数据库的一切操作,而其他用户只能对数据进行相应的修改和添加,不能删除数据。其中操作员的级别分为:1-4级Level 1:最低权限,不能删除,修改功能仅限制在修改操作员模块上Level 2:不能删除记录,增加功能仅限制在增加操作员模块上Level 3:不能删除记录,其他功能可以实现Level 4:管理员级别,可以进行所有操作完整性设计:字段级的完整性:本系统的数据表的相关字段在对应的字段完整性的单元格里指明“非空”来规定该字段不能取空值,例如:操作员名称、密码、供应商名称和仓库名称等;表级完整性:本系统的SQL数据库设置了主码不能为空值,例如:盘点单号、入库单号,商品编号等,所以实现了实体完整性。本系统数据表满足到3NF范式。4.6 数据库连接实现本系统数据库连接采用读取.ini文件方式连接,在login.ini文件里面有连接数据库服务器名,数据库名称,sql用户名,密码这几个字段,然后通过在CApp程序中的InitInstance函数主要加入如下代码:GetPrivateProfileString("OPTION", "Server", "", m_pzServer, sizeof(m_pzServer), "./Login.ini") ;GetPrivateProfileString("OPTION", "DataBase", "", m_pzDataBase, sizeof(m_pzDataBase), "./Login.ini") ;GetPrivateProfileString("OPTION", "UserId", "", m_pzUser, sizeof(m_pzUser), "./Login.ini") ;GetPrivateProfileString("OPTION", "PassWord", "", m_pzPassWord, sizeof(m_pzPassWord), "./Login.ini") ;strAdoConn.Format("driver=SQL Server;SERVER=%s;UID=%s;PWD=%s;DATABASE=%s",m_pzServer, m_pzUser, m_pzPassWord, m_pzDataBase);记录集的连接是通过在CMainFrame的OnTimer函数加上如下代码:m_pCon.CreateInstance("ADODB.Connection");m_pCon->ConnectionString = (_bstr_t)pApp->strAdoConn;m_pCon->Open("","","",-1);m_pRs.CreateInstance("ADODB.Connection");该连接方式使得每隔一秒系统就调用连接数据库记录集一次,实现每时每刻都处于准备状态,并设置m_pCon,m_pRs和m_pRs1为全局变量,使得其他窗口都可以方便得调用这几个变量,不用每次都重新加载数据库连接。第五章 系统主窗体设计该系统主窗体采用分隔条CSplitter类把CMainFrame主框架分割成2列,实现分割条分割主框架的方法为:修改CMainFrame类的OnCreateClient函数为如下代码if (!m_wndSplitter.CreateStatic(this, 1, 2) /分为一行两列return FALSE;if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(200, 100), pContext) |!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CAaaView), CSize(100, 100), pContext)左边列为重载CTreeViewl类的CLeftView类,在里面加入了各个功能快捷项为树型图的各个子项,右边列为Vie