唐志明 点评编码该不该有含义?——揭示编码的秘密 广告 唐志明 编码该不该有含义?——揭示编码的秘密 读了本案例,感到很真实,也感到企业对规范数据的迫切需求。 作为信息化从业人员,我们经常会看到客户因为数据质量问题而无法体现信息系统的应用价值。究其原因,作为信息的基础——数据,在其全生命周期里如何管理和应用,一直是业界的一大难题。两年前我写过一篇文章叫《不要让数据毁了 ERP》来探讨数据的全生命周期管理。但对从数据转向有效信息中最重要的一环――编码,并没有展开论述。 我的体会是,编码与管理需求相关、与信息系统的技术架构相关、与应用系统的人员水平相关。小编码、大学问。今天就结合本案例,来谈谈我积累的一些经验和观点。 在没有严格界定的情况下,对大多数人来说,经常会把数据和信息混为一谈。其实两者有比较大的区别。数据可能是杂乱无章的,而信息则是规范过的,可以反映客观世界的某些规律化的、有效用的数据。 信息的规范性、反映客观世界某些属性的这种内涵,很大程度体现在数据编码,或者说体现在数据编码规则和对规则的使用上。 这样说来,编码的目的是将数据分类,规范整理为有效的信息。为此,现在绝大多数编码都是有含义的编码,对编码的要求一般体现在三个方面:对编码的第一要求是唯一性;对编码的第二要求是可分类;对编码的第三要求是反映所编码的承载信息,即数据内含的信息量。 用有含义的编码,其好处是好记好用。比如居民身份证编号,其7-14位为出生年月日,就很好记。但坏处也非常明显,有含义的编码很难保证数据的唯一性和其所承载信息的准确性。还是以居民身份证编号为例子,其1-6位代表地点,为所在省市县公安局的编号。但由于人口的流动性,你不能从简单地认为这个编号就是居民的居住地。过去由于认识上的错误,出现考到外地的大学生会按照新居住地办身份证的情况,结果出现一人两号。由此看来,编码首先要保证的是唯一性。是否能够承载其他信息,要视情况而定。 编码的目的是将数据分类,规范整理为有效的信息。但反过来说,将数据分类,规范整理为有效信息的方法并不只有编码一种。 过去,人们的做法是将编码分段,每一段指定不同的含义,再重组为一套统一的编码规则。这样就在一套编码体系中同时承载多个信息了,我们可以称之为“成组编码”技术。 而在今天,信息技术已高度发达。在信息系统里,更多地是采用将有效信息拆分为一个个独立的字段,通过对这些独立字段值的定义和使用,来实现数据的唯一性。相比“成组编码”,这种编码技术采用关系型数据库的技术架构,使得编码本身是否有含义已不重要,因为编码的值和多个编码之间的组合已经可以承载更多的有效信息。我们可以称之为“值列表编码”技术。 在信息系统的支持下,“值列表编码”比“成组编码”技术更好,因为它可以更好地满足编码的三方面要求。 下面举一个简单的例子来比较一下两者的差别。 就以案例中的服装产品编码为例。对编码的使用者来说,都希望服装产品编码中能够包含产品大类、款式、颜色甚至尺码等信息,这样既可以区分产品的唯一性,又可以分类和承载管理信息。 使用“成组编码”技术实现,就可能制定如下的编码规则: 图1“成组编码”服装产品编码规则 而“值列表编码”技术将产品大类、款式、颜色分在三个独立的字段中来编码,产品则采用另一个编码。四个字段分别表示产品的四方面属性,它们之间既相互联系又相对独立。四个字段的编码规则可以变得很简单,用流水码就行了,因为大家关心的是由值列表构成的值集而不是编码的含义。对用户来说,可以直接选择属性的值,不用理会编码是什么,在一些软件中就采用系统自动编码来提高用户的软件可用性。 图2“值列表编码”服装产品编码规则 编码的发展趋势是多属性组合 由于有信息系统的程序逻辑的支持,使用“值列表编码”能够将原本放在一个编码中的多个自然属性或者管理属性分别表示,就能够适应因业务的拓展而发生的编码变化。 但“值列表编码”也有一个缺点,那就是它将属性拆分了,但没有体现属性之间的关联性。每一个属性都实现了一物一码,但对几个不同编码之间的内在关系却很难表述。比如,现实中每一款服装的SKU并不是产品大类、款式、颜色、尺码的任意组合,而是根据产品设计风格选出的有限几种,如果用“成组编码”,就会按照编码规则穷举出很多根本不会用到的编码来,当编码的其中一个属性有很多值时,穷举会是一件不可能的事情。比如颜色就可能因为细小的区别而远不止50种(见下表)。为了解决这个问题,案例中原编码只能将颜色用一位数字流水号表示,但流水号并不与具体的颜色匹配,这就造成了颜色码混乱的问题。 表1 三种编码方式产生的编码值集的比较
其实,一个SKU是特定产品大类+款式+颜色+尺码的组合。对一款服装而言,所有与物料相关的管理是面向SKU的,而不是面向单个属性的,而一个SKU又是多属性组合。也就是说SKU是产品大类、款式、颜色、尺码等属性可组合的一个子集。用多属性组合是当今编码技术发展的一大趋势。 实现基础数据的多属性组合管理,需要信息系统大量的代码支持,因为支持多属性组合的逻辑实现要体现在应用这些数据的所有表单、流程和事务处理程序中。 这一要求与几个编码的简单组合大不同,目前能够支持多属性组合的软件还不多,只有大中型、可配置的信息系统才支持多属性功能,绝大多数小型软件是不支持多属性的。象ORACLE这样大型的ERP系统,可以支持最多30个属性的灵活配置,而中型软件只能配置固定的几个属性,因为实现这一功能的软件虽然用起来很方便,开发起来确实很难。 图3“多属性组合编码”服装产品编码规则 随着信息技术的发展,所有的行业都可能转向使用“多属性编码”,但一些行业对多属性的需求更迫切。那么哪些行业必须用多属性编码结构呢? 一般而言,有下列两类行业最需要多属性编码。 一是产品的某些属性必须进行日常管理,而这些属性有很多变化值的行业,比如服装的颜色、鞋的款式、家具的材种等,这些行业必须考虑多属性。 二是产品是小批量、多品种、按单设计、按单制造的行业,比如军品研究所、个性化小电器、小批量的工业用控制装置等。 用多属性来组合编码是未来信息系统的发展趋势,也是企业根据自身产品和管理特点进行系统选型的重要指标。软件是否支持这一功能,需要专业知识和经验,如果读者需要在选型时判断软件产品,可来电来信联系笔者。
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amteam.org | 021-51096826-112 | 在线联系 |
|
|||||||||||||||||||||||||
|
|