一、关系型数据库的应用与编码的关系
现在的企业管理软件系统, 绝大多数是基于关系型数据开发的应用系统, 所以,谈到编码,就不得不了解一下关系型数据库的应用原理, 因为,关
系型数据库的应用原理是导致信息化中编码问题不可回避的主要原因。
关系型数据库是数据库的一种,这种数据库由许多数据表所组成,数据表是由许多行记录所组成和许多列字段所组成。 基于关系型数据库开发的各种应用软件,
就是充分利用了关系型数据库里面的数据表来记录数据,通过设置各种各样的数据表,并在数据表中设置各种列字段,来记录我们希望存储的数据,可以开发出各种各样功能丰富的应用软件,比如现今流行的企业管理软件系统如ERP、PDM等。
在基于关系型数据库的应用软件的开发过程中,开发人员发现,在数据表中,如果给每行数据一个能代表该行数据的ID(身份证号),在软件代码编制过程中,通过引用该ID号而引用该行数据,将会使得软件开发更容易,更方便,现在的应用软件系统中,往往要给很多的数据表设置ID,这个ID,就和我们信息化中提到的编码有很大的关系,正是这个ID的应用,导致了实施信息化时,需要对信息对象进行编码。
关系型数据的应用并不是导致编码问题产生的最早因素,但是关系型数据库的应用却把编码应用推向了一个高潮。
二、面向对象编程技术与编码的关系
面向对象编程(OOP)技术是当今最为流行的编程技术,面向对象的软件设计(OOD)思想自然也是当今最为流行的软件设计思想。
“面向对象” 如今已经很难用一个简短的语句来解释清楚了, 因为 “对象” 这个词的涉及面实在是太广了,对象可以是人们要进行研究的任何事物,而且它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
OOD或OOP中的对象,虽然很广泛,很抽象,但却是有特征要求的,那就是对象要有唯一性、分类性、继承性和多态性。
对象的唯一性就是说每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
对象的唯一性标识,就与信息化中的编码有直接的关系,唯一性要求也是当今信息化建设中编码实施时的最基本要求。
三、对编码的认识
编码对于信息化建设的重要性,大家基本都能认识到,但具体到编码怎么做,如何实施,各个企业对此认识都不尽相同。对编码认识非常统一的一个思想是:编码是对象的唯一标识。对此,基本不存在争议,除此之外,就很难找到能被普遍认可的编码思想了。编码如此重要,可人们对编码认识如此不统一,不能不说这是一个奇怪的现象了。下面我们对编码存在分歧的地方进行分析,以期能够找到你能接受的编码思想。
1、 编码需不需要反映对象信息?
传统的编码思想认为要在编码中尽可能多地反映对象的特征特性信息,但现在这种思想正在受到越来越大的冲击。
根据对编码案例的调研,可以分析这两种编码思想产生的原因。特征特性编码思想产生于计算机还没有应用之前以及计算机刚刚应用时期,这种思想主要是考虑人对编码的识别性,因为特征特性码更容易被人识别,在没有计算机以及计算机应用初期,大部分人查找信息还要靠翻档案资料进行,所以,编码中体现出对象的特征特性,能够减少人们翻查资料的时间,所以,这种编码思想曾得到过广泛应用。
但反对这种思想的人认为,现在计算机的普遍应用,使得信息查找极为方便,已经不需要靠人识别编码中隐含的信息来认识对象, 而且,编码的对象越来越多,
再依靠人识别编码信息来识别对象已经越来越难。 再者, 对象的特征特性太多,全部体现在编码上是不可能的, 既然这样,还不如在编码中一个特征特性也不体现,而是依靠对象的属性来体现。持这种观点的人在实施编码时,喜欢采用大流水码。
用大流水码做编码在没有采用计算机管理技术之前是不可想象的,大流水码只有和对象属性的管理结合使用才有意义。
2、 编码要不要统一长度?编码要不要分隔符号?编码要不要纯数字码?
这是一个关于编码的形态问题,但也是编码实施中必然要遇到的实际问题,无法回避。
编码形态的最终确定,取决于两方面的因素,一是软件系统设计方面的一些限制条件,一是人对编码的认知需求。
早期开发的一些管理软件如ERP软件,对编码有定长要求,有特殊字符要求,在这种软件系统中,非定长码根本无法进入系统, 缺少一些特殊字符就要丧失一些重要功能,
另外一些特殊字符也根本无法录入系统,所以,没有办法,实施这类软件只能采用定长码,只能采用一些特殊字符而不能采用另外一些特殊字符,没道理可讲。
另一方面来自于人的认识习惯,人对编码进行识别时,心理上往往有一个定长的期待,如果看到参差不齐的编码,容易犯嘀咕,这个码对吗?另外,在反映对象的特征特性的编码中,人们希望能将不同的特征段用特殊符号比如-分开,这样容易识别。
3、 如何认识编码所代表的对象?
编码所代表的“对象”的范围实在是太广泛了,太抽象了,编码实施过程中我们遇到了太多太多与这个抽象的“对象”有关的问题。
同一规格型号的物资,不同厂家生产,编码相同还是编码不同?也就是说它们是同一对象还是不同对象。这个问题看似简单,却难以回答,实际调查的实施情况也是这样,没有统一的认识,有些案例将它们作为不同的对象,给了不同的编码,有些案例将它们作为相同的对象,给了相同的编码。一个成品零件,有一个编码,在这个零件被加工成成品之前,经过了若干工序,从最初的毛坯,然后经过一道道的工序加工,毛坯是不是一个与零件成品对象不同的对象?要不要有自己的编码?各个工序过程中产生的半成品件是不是独立的对象?要不要有自己的编码?如果要编码,该如何编码?即便同样规格型号的零件,不是一个批次生产的,它们是同样的对象还是不同的对象?有相同的编码还是有不同的编码?
从这些问题我们可以看出来,编码问题已经不仅仅是个简单的代码编制问题,而是一个与管理有着紧密联系的问题,脱离了管理需求,编码代表的“对象”就无法确定。所以,在实施编码时,我们需要确定,我们的管理“对象”是什么,我们的管理粒度有多细,如果要管到工序件,需要确定管到哪些工序,要知道,管理粒度越细,信息化实施的难度越大,成本越高,所以,每个企业要量力而行。
从实施的案例来看,编码对象的粒度是一个不太容易确定的问题。在制造型企业的信息化中有一个重要概念,就是BOM(物料清单),BOM有设计BOM、制造BOM、装配BOM、实例BOM(又称为档案BOM)等区分,其中一部分BOM用于计划管理体系,用于计划管理体系的BOM主要有设计BOM、制造BOM与装配BOM,设计BOM中的对象是处于设计状态的对象,基本没有批次、生产厂家之分(有时有例外),但制造BOM与装配BOM中的对象,是否具有批次、生产厂家之分,则较难以确定(实际上,制造BOM与装配BOM是否只能用于计划管理体系也是不能确定的),实例BOM中的对象则一定具有批次和生产厂家之分。
计划BOM与实例BOM的定义及融合问题,是需要制造业信息化的从业人员,特别是软件厂商努力明确的一个问题。
四、编码的解决方案
编码对于信息化是如此的重要,但一直以来,缺乏针对编码的专业解决方案,往往是每个软件系统自身都带有多多少少一些辅助编码功能。这样导致的一个结果就是,各个软件系统之间由于编码不统一而无法实现数据集成,即便每个软件都具有丰富的集成功能接口。这个问题突出地表现在集团型企业中。因为编码不统一,集团下属的各分子公司的信息化都搞地很好,
但集团公司却无法实施信息化, 每个分子公司都把数据报上来了,集团公司由于无法自动识别每个分子公司的编码所代表的“对象”,只能靠人力逐一对照,费时费力,好像信息化带来的不是方便而是更多更麻烦的工作。
所以,在这种情况下,即各分子公司分别实施过信息化了,集团公司的信息化不是统一规划下实施的,需要集团公司部署一个集中统一的编码管理系统。
传统的编码管理方法是通过发布标准的形式对编码进行管理,这种管理方法静态、死板,每次更改都要以更新标准的形式发布,极为不方便。为了编码更容易推广及实施,也需要部署集中、统一的编码系统软件。
为了更方便地支持编码的应用、推广,编码系统需要具有“对象”的概念,编码系统中的数据要围绕“对象”进行管理,编码作为“对象”的一种特殊属性,“对象”除具有编码属性外,还要具有其它的一些属性,编码属性和其它属性相结合,实现对一个“对象”的定义。
编码系统还要具有流程管理功能,以便实现编码的申请-〉编制-〉审核-〉发放流程管理功能。
|