admin 管理员组

文章数量: 1087652


2024年3月28日发(作者:php正则表达式去除html标签)

维普资讯

第16卷

2o06年l2月 

第12期 

计算机技术与发展 

ODMPUTER TECHNOU)GY AND DEVELOPMENT 

vo1

16

№.12 

Dec. 2006 

NET平台下库存管理系统的设计模式研究 

汤亚玲 ,秦峰 ,崔志明2 

(1.安徽工业大学计算机学院,安徽马鞍山243002: 

毒 

2.苏州大学智能信息处理及应用研究所,江苏苏州215006) 

薯 

摘要:库存管理是ERP系统实施的基础环节,主要实现企业管理中的物资储备的信息化管理,为ERr系统中的采购、生 

产、销售提供信息、决策支持。结合工程实践,阐述在.NET平台下库存管理软件及其设计模式的相关问题,对开发 RP系 

统中库存管理具有一定的参考价值。 

关键词:.NET;库存管理;软件构架;数据安全  .

中图分类 ̄":TP393.07 文献标识码:A 文章编号:1673-629X(2006)12—0133—03 

Research on Design Pattern of Inventory 

Management Based on.NET Platform 

TANG Ya-lingI,QIN Feng ,CUI Zhi.ming2 

. 

(1.School of Computer,Anhui University of Technology,Maanshan 243002,China; 

2.Institute of intelligence Information Processing and Application,Suzhou Univ.,Suzk ̄u 215006,China) 

Abstmct:Inventory managenent,which realims the informational management of material inventory,is the base procedure of ERP system 

applying-And it supports On information acquirmeent and decision—making for buyign,production naa sellign in它RP旬 ern.Ex l抽 

problmeof software and design pattern ofinventorymanagement basedon.NET.andit has 8OrD

e v丑 luefor re ̄izati6nofinventory 

management in ERP system. 

Key WOI ̄:.NET;inventory management;sofwtare structure;data security 

O引 盲 

1库存管理的功能设计 

对于企业的生产来说,准确掌握自己各种物料(如:原 

ENT架构下的库存管理的主要功能模块结构如图1 

料、辅料、半成品、成品)的库存情况,其重要性是不言而喻 

所示,其中系统子模块中包括权限分配(针对系统管理 

的,因为其关系到企业的采购、生产、销售的整个流程的正 

员)、登录密码修改和库存数据的备份与恢复等功能。 

常运作。但是企业由于各种原因:生产的组织复杂、仓库 

数目的众多、仓库物理位置上的分散等导致了很难准确掌 

握企业各种物料现有的库存量,影响了企业的发展。因此 

作为企业,要提高其生产、管理的效率,库存管理应发挥其 

基础作用。 

该系统的原型是基于C/S模式的ERP系统…中的库 

图l库存管理系统 

存管理系统,已在常州精科集团投入使用多年,其性能稳 

各子模块的其体功能: 

(1)入库管理包括:入库制单、入库复核、入库查询、入 

量 

定,收到了良好的效果;近年来,由于Web技术发展和企 

业信息化管理的需要,已将它移植到微软的.NET平台之 

库统计等子功能模快。 

上,并逐步推广。基本能满足新平台之下的库存管理需要。 

(2)出库管理包括:出库制单 出库复核、出库查询、出 

● 

库统计等子功能模快。  。

(3)库存盘点包括:盘点制单、盘点复核、盘点查询、盘 

收稿日期:2o06一o3—25 

点统计等子功能模快。 - 

作者简介:汤亚玲(1974一)。男。安徽庐江人,讲师,硕士,主要研究方 

(4)库存报损包括:报损制单、报损复核:报损查询、报 

向为智能化信息处理及网络数据库系统;秦峰。教授。硕士生导师, 

损统计等子功能模快。  ‘

主要研究方向为人工智能、数据挖掘及计算机网络;崔志明,教授,博 

(5)退货管理包括:退货制单、退货复核、退货查询、退 

: 生导师,主要研究方向为智能化信息处理、数据挖掘及计算机网 

货统计等子功能模快。 

络应用。 

(6)库存查询模块包括:根据库存量的浏览查淘、指定 

维普资讯

134・ 计算机技术与发展 第16卷 

条件的库存货品查询、任意指定时间段的库存变化的(入 

库、出库、盘点、报损、退货)库存货品数量的汇总(即计算 

仓库的库存月平衡表、季度平衡表、年平衡表)。 

大型的数据库系统,如Oracle,SOL Server为人们提供了 

很多高级的数据库技术来实现这些要求,文中将阐述在库 

存管理中所采用的一些关键数据处理技术。 

Web睢务层应用虮什詹 数搦咋璧 

(7)系统设置模块中包括:库存的初始 阄户再黼J皇 

化、库存最高限量最低限量的设定、仓库管 

理员的权限设定(由系统管理员来进行分 

一: 

● 

配)、密码设定、库存数据备份恢复等功能。 

对仓库管理员来说,入库、出库、盘点、 

报损、退货均可以改变当前的货品的库存 

最,因此,慎重起见,对上述操作都要经过制0 

单、复核两步操作流程。对查询统计模块来 

说:入库、出库、盘点、报损、退货等功能的查 

询统计的结果可以根据多种条件的组合进 

i : 

、: 

; 

: 务器N 

行计算得出。条件一般有输出形式(表单、 

明细或仅货品编号)、时间、审核或未审核、指定单号、指定 

货品编号名称、与库存相关的经济单位等。 

图2.NET下软件架构图 

2.2.1数据连接视图 

精科集团的库存入库货物源由以下几个部分组成:成 

品入库、半成品入库、采购入库(供应商、企业代工等)、领 

料入库、库间调拨等,在建立入库表单时采用建立视图的 

方式将多种入库来源连接在一起,屏蔽表问数据的差异 

性,提供给用户统一整齐的查询界面,大大方便了用户的 

2软件详细设计 

2.1软件功能分配 

般地,B/S模式的软件体系分成四层:用户界面层、 

web服务层、应用组件层和数据库层。用户界面层主要 

利用AsP.NET构造用户界面,.Nl玎的Web服务通过 

HTML,XML或SOAP传递数据信息可应用于多种设备 

或终端(如IE,P【)A);Web服务层负责处理来在客户端的 

请求,对客户端身份进行安全验证 根据请求的内容来决 

定是否需要调用后台Web Service服务,如是则访问应用 

管理,对于出库、退货等也做类似的处理。以下给出了入 

库货源的视图的T—S( 代码。 

a 

。 

E V聊

● 

dbo.V—rkdwml AS 

S ̄.LECr cj—bh AS bh,cj—mc AS mc,‘cj’AS Ix 

0M zd—ciml UNION ALL 

SEI ECT ck—bh AS bh,ck me AS me,‘ck’AS 1)【 

zd—ckmlUN10NALL 

SELECTgys—bhASbh,gys—mcASme,‘gys’ASix 

zd—gysml UNl0N ALL 

组件层的相应服务,并将所得结果进行返回给客户端,否 

则由本层负责解释执行。应用组件层是.NET框架L2,3j的 

核心,本库存系统提供给用户的功能基本由该层实现,包 

含多个不同功能的web Service,如库存统计、库存查询、 

库存报表等,并通过发布相应的.NET组件来实施。数据 

库层主要由各种类型的数据库系统组成,与组件层通过 

ADO.NET来进行数据通讯,ADO.Nl 定义了一个完全 

基于XML的数据集,能用)(1vⅡ一格式与多种数据库系统 

进行数据交换。 

SEIECTxz-bhASbh,XZ—meAS1TIC,‘XZ’ASIx 

F】R0M zd一 

其中,V—rkdwml是入库单位的统一视图。 

2.2.2数据完整性维护 

从实施数据完整性[ , ]功能的角度。可以从中间层或 

数据库层来实现,但从效率的角度考虑后者要大大优于前 

者,因为从将完整性的维护由数据库服务器来实现的话, 

上述的软件架构模式的重要特点是简化了客户端的 

软硬件要求,将应用逻辑分配在Web服务层和组件层,客 

可以避免web服务器端的计算压力,利用数据库服务器 

的强大计算资源,同时避免了大量的网络数据传输,提高 

对用户界面层的服务效率。 

(1)数据表设计:表单表头、表单明细的设计,对入库、 

出库、盘点、报损、退货等表单的设计一率建立两张表来实 

现,表头信息包括表单编号、仓库名称、操作员名称、制单 

时间、审核时间、总金额等信息;表单明细包括表单编号、 

货品编号、货品名称、货品单价、货品数量、金额等信息。 

设定表头中表单编号是主键;表单明细中,货品编号、 

表单编号构成联合主键,表单编号是外键,与表头进行关 

联。 

● 

户端仅仅接受用户的请求和Web服务器端发过来的相关 

数据;中间层为Web服务层和组件层,负责应用处理业务 

规则、数据访问、合法性校验等工作 3 ;底层为数据库层的 

数据库服务器端,负责数据处理逻辑,大量后台数据计算 

将集中在数据库服务器端处理.。图2给出了.N】盯下库 

存管理的软件架构。 

2.2关键数据处理技术 

NET软件架构下,业务处理逻辑和数据处理逻辑被 

分配在中间层(包括web服务层和应用组件层)和数据库 

层,而作为数据库的应用程序,特别是大型数据应用处理 

程序,许多数据处理工作是在数据库服务器端完成的,而 

(2)触发器维护数据库完整性:触发器是实施参照完 

维普资讯

第l2期 汤亚玲等:.NET平台下库存管理系统的设计模式研究 ・.t35・ 

整性和数据的一致性重要手段,从数据存储的效率和范式 

的角度考虑,在建立入库、出库等表单时都建立通过外键 

关联方式建立表头和表单明细两张表,它们之间通过表单 

号外键关联,定义删除和更新触发器来维护表之间的数据 

数据库服务器端的存储过程,建立事务处理逻辑如下; 

第一步:回推到起始时间的库存量,它包括; 

(1)加上现在到起始时间的所有的出库量(注意:现 

在日期不一定等于终止日期); 

致性,对于插入时的数据一致性由中间层的组件来完 (2)减去现在到起始时间的所有的入库量; 

(3)加上现在到起始时间的所有的报损量; 成,达到为维护数据完整性和降低中间层计算负荷的目 

嚣 的。 

(4)减去现在到起始时问的所有的盘点赢亏; 

(3)存储过程实施事务处理逻辑:存储过程是预定义 (5)减去现在到起始时间的所有的退货量。 

的存储在数据库服务器端且已编译好的一组T—SQL代 

第一步得到上期结存数量。 

码,具有安全、高效的优点。存储过程中,通过定义事务、 

第二步:计算起始日期到终止日期的所有入库量。 

开启事务、提交事务和回滚事务等手段,实现在库存管理 

将所有的始日期到终止日期的所有入库量累加起来 

中的基本库存操作,如入库、出库等,达到数据操作中高效 

得到指定时间段的货品入库量。 - 

读写多张表,同时保证多张表之间的数据完整性、一致性。 第三步:计算起始日期到终止日期的所有出库量。 

(4)规则、约束的使用:规则、约束是在大型数据库检 将所有的始日期到终止日期的所有出库量累加起来 

验数据合法性,实现用户自定义完整性和域完成性的重要 得到指定时间段的货品出库量。 

方法。在本系统的开发中,对一些用户自定义的数据类型, 

第四步:计算起始日期到终止日期的所有报损量。 

如仓库类型、入库类型、用户类型以及表单处理状态定义 

将所有的始日期到终止日期的所有报损量累加起来 

了相关的规则和约束,保证数据的准确性、唯一性。 得到指定时间段的货品报损量。. 

2.2.3数据处理的并发控制 

第五步:计算起始日期到终止日期的所有盘点盈亏 

库存管理系统的管理对象是多个物理位置上分散的 

量。 

仓库,而这些仓库的操作员(或仓管员)可能同时对库存的 

将所有的始日期到终止日期的所有盘点盈亏累加起 

数据进行操作。因此为了保证数据的正确性,数据存取的 

来得到指定时间段的货品盘点盈亏最。 

并发控制尤其重要,本系统采用的方法是:利用事务处理 第六步:计算起始日期到终止日期的所有退货量。 

逻辑(transition)对数据的并发存取进行控制。 将所有的始日期到终止日期‘的所有退货量累加起来 

事务处理具有以下的特性: 

得到指定时间段的货品退货量。 

(1)原子性:事务的所有操作在数据库中要么全部正 第七步:算出本期结存。 

确反映出来,要么全部不反映出来。 

总计算公式:本期结存=上期结存+本期收入一本期 

(2)一致性:事物的隔离执行,即没有并发执行的其 

发出~本期报损+盘点盈亏+本期退货 

它事务,保持数据库的一致性。 

该存储过程较长,牵涉多张表的数据复杂计算,限于 

(3)隔离性:尽管多个事务可以并发执行,但系统保 

篇幅,这里不给出其T—S( 代码。 

证对任一事务对Tx和Tv之间的无关性,在Tx看来Tv或 

者在Tx开始之前已经停止执行,或者在1rx完成之后开始 

4系统安全 

执行。 。 

4.1权限管理 , 

(4)持久性:一个事务成功完成后,它对数据库的改 

库存管理系统是典型的多用户数据库(计划员、仓管 

变必须是永久的。 

员、系统管理员等)应用,各个用户的职能权限不一样,计 

在具体实施时,对任意的事务。要么处理完成(com. 

划员负责制单操作;仓管员进行复核;系统管理员对整个 

mit),要么滚回(follback)。多个事务同时提交时,数据库 

系统进行管理,包括用户权限分配、密码设定、系统维护等 

系统会对多个事务采用可串行化策略,或者加锁,保证多 

工作。因此对于本系统应有完善的系统管理。 

・ 个事务的正确执行,维护数据的完整性和一致性。 

针对于此,笔者单独开发一个子模块,进行权限分配、 

密码管理等工作,相应地,在后台建立其相应的数据表,用 

. 

3库存报表的实现 

来保存各个用户信息(用户账号、密码、模块访问控制等), 

也称库存汇总或库存平衡表,主要实现一段时间内的 

通过系统管理员分配用户账号、密码来管理用户登录,而 

库存的动态变化数据的汇总,让管理者对库存的变动有总 

通过模块访问控制来实现用户权限分配,达到使不同的用 

体上的把握,也是ERP系统开发中的一大难点,本系统根 

户拥有对不同模块不同的访问权限(读、写)。保证了整个 

据精科集团的业务需求,实现了任意给定时间段库存报 

库存管理系统的正常运转。 

表,为企业的管理提供了极大的便利。 

4.2数据访问 

由于库存汇总牵涉库存管理中的入库、出库、退货、报 

可以利用大型数据库较为完善的安全策略,通过身份 

损、盘点、库间凋拨等业务,本系统为实现这一功能,编写 

(下转第l38页) 

维普资讯

138・ 计算机技术与发展 第l6卷 

索者看来非规格化可以实现其他一些有价值的目标,但是 

5结束语 

对信息的使用者来说非规格化并不能增加他们的性能需 

在使用并行技术从体系结构上扩展数据仓库的同时, 

要,有经验的数据仓库管理员发现将经常一起使用的相关 

通过对数据仓库几个关键问题的研究,使得当大量异构数 

类型的数据存储在一起是一件非常有意义的事情。在图 

据进入数据仓库时,数据仓库的性能不会变差,并维持良 

2中数据被规格化并且分开,这样每年中的所有月份被分 

好的决策支持。 

别放置在不同的物理位置上,如果某个查询要查看一月、 

二月、三月等月份中的数据,那么系统必须到不同的地方 

参考文献: 

去搜索数据。这里创建一个数据阵列,将相关的数据放在 

[1]InmonWH.BuildingtheDataWarehouse[M].王志海等译. 

同一个物理位置上,现在如果做相关的查询只需要物理访 

北京:机械工业出版社,2000. 

问系统一次,因为这些数据已经被最佳地放置从而适应这 

[2]Strum J.MicrosoftSQL ̄ver7数据仓库技术指南[M].刘 

样的要求。如果没有确认的和有规则的需求来同时查看 

汉字等译.北京:机械工业出版社,2000. 

年中的某些月份,使用这种技巧并不能优化性能,信息 

[3]Bergam ̄hiS,CR ̄artoS,Vineini M.Semantic Integration of 

使用者经常使用可预测和有规律的数据。所以这样的技巧 

Semistructured and Structured Data Sources[J].SIGMOD 

可以很好地完成。图2所示为将相关类型数据一起存储 

Record,1999,28(1):54—59. 

的情形。 

[4]Binon D,Dewitt D J.Duplicate Record Elimination in Large 

Data Fiks[J].ACM Transactions On Database Systems,1983, 

8(2):255—265. 

[5] Kukich K.Techniques for Automatically Correcting Words in 

Text[J].ACMComputing Surveys,1992,24(4):377—439. 

[6]ChartCY,IoannidisYE.Bitrnap IndexDesign andEvaluation 

[R].Computer Sciences Dept.,University of Wiscomin— 

Madison,1997. 

. 

[7]InmonWH,RudinK,BussCK,et a1.数据仓库管理[M].王 

天佑等译.北京:电子工业出版社,2000. 

图2利用数据阵列并王相关数据 

-+-+—+—— ‘+-— -+一—-一一+-+-・+--,I--. 

(上接第135页) 

验证措施来决定用户的访问权限,并对传输的数据进行加 

理系统。探讨其软件架构和相关的数据处理技术,并阐述 

密,来保证数据在中间层和数据库层(底层)的安全传输。 了系统中采用的安全管理策略,为企业用户构建一个安 

在诸如Oracle,SOL Ser、,er等大型数据库【5 J提供了对象 

全、方便、高效的应用系统,对于ERP系统中的其它部分 

级(如视图、存储过程、表等)的甚至是记录行级的安全措 

实现同样具有一定的参考价值。 

施,OracleSi之后的版本支持Ⅵ (虚拟专用数据库)和细 

粒度存取控制(Fine Grain Access Control,简称 

参考文献: 

FGAC)[6,73。图3给出了SOL Server的数据安全策略。 

[1]李嘉平.大型ERP实施全接触[M].北京:电子工业出版 

第一屡 第:屡 掉三廛 

簟聃 

社,2004. 

ind

ows

NT Windows NT SQL Serv日r 

域纽安全性 

...

计蔓机纽安全性 整景 荏 

数据库用 

[2]KnowlseC,MohrS.ASP.Net XML高级编程——C#编程 

户翱权限 

篇[M].北京:清华大学出版社,2002. 

[3]Kothari N,Datye V.ASP.NET服务器控件与组件开发 

[M].邓春红,等译.北京:机械工业出版社,2003. 

图3 SQL 安全策略图 

[41 SilI)erschatz A,Korth H F 数据库系统概念[M].北京:机械 

为了保证用户界面层和中间层之间的安全数据传输, 

工业出版社,2003. 

同样采用用户身份认证的方式保证用户的合法性。并且 

[5]周立柱,冯建华,盂小峰,等.SOL Server数据库原理—— 

在中间层的外面构筑企业级的防火墙,阻止非法入侵,保 

设计与实现[M].北京:清华大学出版社,2004. 

证用户的数据传输安全。 

[6]胡欣杰.Oracle 9i数据库管理员指南[M].北京:北京希望 

电子出版社,2002. 

5结束语 

[7] Oracle Corporation.Oracle Db—security[EB/OL].2001— 

06.http://www.oracle.eom/technology/deploy/security/or— 

文中结合了工程实践,介绍了如何将微软.NET框架 

aclegi/pdf/9isecbpa.oaf. 

与相关的大型数据库技术相结合,构建ERP中的库存管 

.。 


本文标签: 库存 数据 管理 用户