日志式库存管理的设计思路解释

日志式库存管理的设计思路解释

日志式的管理是一种流水帐式的登记方式,其核心思路是对所有操作进行记录,特征是只登记不修改与删除。

一. 日志结构

单据名称:如:入库单,出库单,调整单等

单据编号:某一特定单据的编号

库存状态:记录各种单据对库存的影响方式为加或减

操作类型:记录当前操作是审核还是撤审。如同样是减库存,也要分是撤审的减库存还是退货的减库存或者调拨仓库的减库存

登记时间:是记录产生加减库存的日期。它在日库存统计起重要作用

物料编码:库存管理中会对每个材料进行唯一编码,以便库存进行管理

物料名称:如已有物料编码,其名称只是对编码的详细中文注释。如工厂对物料编码不能不能理解,信息化基础很差,那么中文名称将是工厂操作人员通俗的理解方式,系统在此做预留也就是可以满足此类用户的需求,库存在统计时同样可以按物料名称来统计。物料名称因此可以广义的理解为用户可接受的扩展属性。如:幅宽,规模,颜色,尺码等。只要是用户可以记忆的信息,都可以归入名称范畴。

发生数量:是一个正数字。本次数量通过发生数量*库存状态来产生。

创建人和创建时间:通常是记录本单的审核人和审核时间。它与登记时间是有区分的,由于库存统计时对时间的界定一般有两种方式,一种是按审核时间来进行统计库存,另一种是按单据发生时间来统计,两种方式主要区别是发生时间则用户可自行调整,审核时间要求人员操作及时准确。所以通常用户都会采用第一种方式。

二. 日志式管理的特点

日志式管理与单据管理进行结合真正实现前后台功能分离,日志功能与单据管理的结合点为单据管理中的审核功能。即前台界面负责数据显示与录入,后台审核负责写日志,增减实时、历史库存。

在此先解释一下,实时库存与历史库存。

实时库存顾名思义,它是整个系统运行到当前时间点的库存量。如:当前时间为10:05分,那么如果在此时查询的物料A实时库存报表则是10:05分的库存量。

历史库存则是以天为单位进行统计生成每天的库存量。因此历史库存换算成时间是记录每天晚上23:59分时的库存量。

实时库存与历史库存之间的差值只有一天。实时库存是查当天的库存,历史库存是查当天之前的库存。从用户角度来讲两个库存没有区分,而从后台数据库角度分析,这两个库存一定要区分开,因为库存数据是一个海量的后台数据表,任何对此海量数据表的插入,修改,删除操作将会直接影响系统的整体查询性能,如果不把其很好的区分开,所有操作合在同一个表中进行,定会造成由于查询速度缓慢,而用户终端多个未结束的任务将此表锁死,最终形成系统瘫痪。而根据库存业务操作的分析结果,用户在操作库存系统的过程中90%以上的工作是在对实时库存进行查询、添加、修改操作。而仅有10%左右的工作是在操纵历史库存,对于这10%的历史库存操纵,我们也进行过统计,历史库存的操作通常不会跨二个月以上(健全财务制度的要求),这样随着数据的增加,超过三个月含三个月的数据基本处于封存状态。因此对于库存系统在考虑到性能的基础上设计时一定要将实时与历史库存分开,从历史库存的查询及修改效率上可以对历史库存进行数据库表分区域管理。

日志式的管理在实时库存与历史库存中的意义在于,日志是记录系统库存操作的原始档案,根据日志式的管理特点:

1. 它的数据是可以完全恢复出历史库存与实时库存。这在系统的实时库存与历史库存表发生灾难性事故可以更快的恢复现场。

2. 日志式管理可以使开发工作更为简单,前台专注于界面的流程及数据校验工作,后台审核工作全由日志式管理模式进行处理。

三. 日志式结构的优点与缺点

1. 优点:

(1) 所有影响库存的单据全部统一在一张表里进行管理,查询方便。还要方便进行导出备份。

(2) 在做库存查询与统计时的速度优于散在各处相加再进行统计的方式。

(3) 如果日志完整,可根据日志反向生成各种单据。配合第一条优点,可快速进行单据还原。

2. 缺点:

(1) 日志信息目前只适合记录库存增减,不适合记录业务流向。

(2) 日志量庞大,使用一段时间后,做通库查询速度与性能降低。

(3) 日志信息普通操作人员不易看懂,必须是对整个系统较为熟悉的人员才能读懂。

3. 解决方案:

对于业务流程的数据展示通过前面界面做针对性强的开发,而后台库存运算则采用库存日志的方式实现。

针对日志表做数据库存储文件的优化,根据时间段多做结果表,生成日结,月结,加快查询速度,将经常查询区域的数据进行分区域管理,提升整体查询性能。原则上以十万条数据作为一个查询速度减慢的监界点。十万条以内的查询速度还是可以接受的。

最终操作用户不需要看懂此日志表,他们看到的都是在日志表基础上经过加工的、用户可能看得懂的界面信息。如果一个有经验的程序员,在看过本文的介绍以后就可以马上理解日志表的作用。

四. 其它

1. 一条SQL产生期初、期末库存表。(从技术上可以达到求期初,但从实际应用考虑不推荐此法,此仅应用于数据稽核时)

select tb.pm,tb.frq,tb.gg,

       decode(row_number() over(partition by tb.pm order by tb.PM,tb.RQ,tb.gg),1,0,

       LAG(l_bqlj, 1, 0) OVER (ORDER BY tb.PM,TB.RQ,tb.gg)) AS prev_BQJC,

       tb.bqrk,tb.bqck,tb.l_bqlj

 from

(select ta.pm,ta.gg,ta.rq,ta.bqrk,ta.bqck,

       SUM(ta.bqlj) OVER (PARTITION BY ta.pm,ta.gg

                           ORDER BY ta.PM,ta.gg,ta.rq

                           RANGE UNBOUNDED PRECEDING) l_bqlj

 from

(SELECT LSZ.物料名称 pm, LZS.规格 GG,to_char(LSZ.登记时间,'yyyy-mm') rq,

       sum(decode(LSZ.库存状态,1, LSZ.数量,0)) bqrk,

       sum(decode(LSZ.库存状态,-1,LSZ.数量,0)) bqck,

       sum(decode(LSZ.库存状态,1, LSZ.数量,0)) -

       sum(decode(LSZ.库存状态,-1,LSZ.数量,0)) bqlj

  FROM (select 物料名称,登记时间,规格,库存状态,数量

        from 日志结构 b

       where to_char(登记时间,'yyyymm') >= '200810'

       union

       SELECT a.物料名称,to_date('200810','yyyymm') 登记时间,a.规格,0 库存状态,0 数量

       FROM 日志结构 a

       GROUP BY a.物料名称,a.登记时间,a.规格

 group by to_char(LSZ.登记时间,'yyyy-mm'),LSZ.物料名称

 order by to_char(LSZ.登记时间,'yyyy-mm'),LSZ.物料名称) TA) tB

分析:

1.  竖值变横使用DECODE把满足条件的记录数量保留下来,不满足条件的过滤为0

2.  SUM进行累计运算。

3.  LAG错位进行结转运算。

4.  UNION做结转表

五. 日志式审核运算要点

1. 过程分布。

(1) 校验数据

(2) 特殊业务接口

1) 内部:更新自身系统的业务或基础资料表
2) 外部:写入与外部通讯表的数据

(3) 写日志

(4) 生成实时、历史库存及相关库存报表。

(5) 更新业务表相关辅助字段,在实体表(业务追踪报表)生成数据,

(6) 日志归档,维护部分,代码不需要

管理信息系统(简称MIS)是在管理科学、系统科学、计算机科学等的基础上发展起来的综合性边缘科学。在21世纪信息高速发展的时代中,管理信息系统具有很重要的作用,它的预测和辅助决策的功能,即利用现代管理的决策和支持。 管理信息系统是一个由人、机(计算机)组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。它能观测企业或组织的各种运动情况,利用过去的数据预测未来;从全局出发辅助决策;利用信息控制企业或组织行为,帮助其实现长远的规划目标。简言之,管理信息系统是一个以计算机为工具,具有数据处理、预测、控制和辅助决策功能的信息系统。 管理信息系统是一个人机系统,同时它又是一个一体化集成系统。管理信息系统是信息系统的一个子系统,它以计算机技术、通讯技术和软件技术为技术基础,同时将现代管理理论、现代管理方法及各级管理人员融为一体,最终为某个组织整体的管理与决策服务,是由人和计算机组成的能进行管理信息的收集、传递、存储、加工、维护和使用的系统。 管理信息系统的基本结构可以概括为四大部件,即信息源、信息处理器、信息用户和信息管理者。因此,一个成功的管理信息系统应该具有可靠的硬件、实用的软件、强有力的现代化管理水平。具体讲,管理信息系统的三大支柱是:计算机网络、数据库和现代化的管理,这三打支柱称为管理信息系统的扩展部件。 1.2数据库应用系统开发简介 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。 数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。 数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值