苏朝阳
在电子政务和信息系统的建设过程中,当涉及到产品信息时,不可避免地会遇到一个问题,就是产品如何分类。我们希望采用统一的产品分类方式,并在此基础上建立单一的产品分类目录。然而,无论国际还是国内,权威性的产品分类方式有很多种,每种产品分类都有其自身的理论体系和应用优势。这样势必对我们的信息化建设提出一个挑战:面对众多产品分类目录,我们的选择是什么?当我们确定了产品目录之后,我们又将面临另外一个问题:如何与其他产品目录实现产品信息的共享和交换?
弹性目录的提出
在提出弹性产品分类目录体系之前,我们先了解一下在国内外获得广泛应用的产品分类目录情况。
目前国际、国内广泛使用的产品分类目录有:按原料或基本材料加工处理的程度、功能和用途来划分的《产品名称和编码协调系统》,主要适用于国际间进出口商品的关税征收和统计;涉及可运输商品的《标准国际贸易分类》,用于国际贸易中可运输物品的专门统计;按产品的物理性质、加工工艺、用途等划分的《主要产品分类》;我国第一部较系统、较全面的产品分类国家标准《全国工农业产品(商品、物资)分类代码》国家标准(GB/T7635-1987);广泛地应用于统计、计划、财务核算、工商、税务管理等各个领域的《国民经济行业分类与代码》国家标准(GB/T4754);按固定资产的基本属性分类、主要用于固定资产的管理、清查、登记、统计等工作的《固定资产分类与代码》国家标准(GB/T14854-1994)。
此外,在一些管理部门,也存在使用多种产品分类目录的情况,比如质监系统,由于对监管产品的要求、力度、目的不同,导致采用不同的产品分类目录,如《工业产品许可证发证目录》、《强制性认证产品目录》等等。
在这种难于采用单一产品分类目录的情况下,本文提出一个弹性产品分类目录体系。弹性目录一方面必须适应现实的多目录环境,满足各有关领域或行业的需要,另一方面必须满足不同目录之间的数据共享和交换的要求。
为了便于描述,本文以质监业务为例,说明弹性目录的设计思路。其他领域或行业可根据实际情况和需求,举一反三,灵活设计。
弹性目录的设计要求
弹性目录必须具备以下特点:
一是目录结构性的,可伸缩变化的。社会经济的发展和产业结构的调整,产品分类目录以及目录数量都会随之发生变化,这就要求弹性目录具有很好的弹性和伸缩性与之适应。
二是目录的易维护性。如果目录维护过于复杂,那么可能就难以在实际中获得应用。因此,设计必须充分考虑目录维护的人性化、简单化和智能化,必须很容易进行目录的创建、更改、删除等各种操作。
三是能够通向最终的单一目录。对于一个信息系统,最终的目标是实现统一的产品分类目录。所以当客观条件具备时,弹性目录能够迅速并自然的过渡到单一目录结构。
弹性目录的结构
弹性目录由三种类型的目录组成:总目录、源目录和应用目录。源目录由源头产品数据组成,它是产品数据采集的依据,具有一定的权威性,源目录中的产品数据不存在分类重叠和交叉的情况。总目录是对源目录进行分析、细化、归类后形成的总体目录,是弹性目录包含产品分类信息的总集。应用目录是以总目录为依据,根据实际业务或应用需要派生出来的子目录。以上海质监业务为例,源目录有工业产品许可证发证目录、食品QS发证目录、计量强制检定器具目录、特种设备分类代码等分别代表不同领域的产品分类目录。应用目录有监督抽查目录、专项整治目录等,这些目录涵盖源目录中的大部分产品,但产品分类的方式、颗粒度以及涵盖范围有所不同。总目录则由所有源目录的产品按一定的原则进行重新归类后获得。有时候可能出现应用目录产品范围超出源目录的情况,这时需要在源目录中补充一些产品类别,或者创建新的源目录,以满足这种需要。系统中对产品的分析、查询和统计等操作均以总目录为基准,从而无缝地实现数据共享。
图1给出了质监业务弹性目录的示意图。
弹性目录数据表的构成
为了实现设计目的,必须创建以下几种类型的数据表:
(1)目录属性表
由一组与目录相关的数据表组成,用于描述目录类型,是总目录、源目录还是应用目录;这个目录用于哪些业务;这个目录与其他目录的关系:父子、组合、继承等等;以及其他的目录属性。
(2)产品分类属性表
用于描述产品的分类属性,比如,一般目录的产品分类至少有三级:大类、中类、小类,有些目录分类更细,还涉及产品的品种、规格、型号等等。此外,不同的产品目录对分类使用的名称也不尽相同,除以上名称外,还有使用一、二、三级或者使用大类、章、组等名称,不一而足。因此,分类属性表必须能够满足这种分类以及对分类名称表述的需求。该表由两个部分组成:固定字段和可选字段,固定字段主要有三级分类属性,可选字段根据实际需要对第四级以下的分类进行扩展,如图2所示:
(3)产品属性表
包括两部分的数据表,一部分是产品信息表,用于记录产品名称、产品分类等产品信息。另一部分是用于描述产品分类关系的映射表。由于每个产品分类目录的分类方式、颗粒度不同,势必导致每个产品分类所包含的产品种类和数量的差异。比如目录1的A小类包含5种产品,与之对应的目录2的B小类包含3种产品,而相应的目录3的C小类可能由目录1中的3种产品和目录2中的2种产品组成。如图3:
如果直接在不同的目录之间对产品建立关联,可能会导致产品的映射关系相当复杂,不利于今后的管理和维护。为此,我们统一把所有目录与总目录建立关联,从而大大降低这些映射的复杂度。在上例中,三个目录的产品作如图4转换:
假设总目录中相应的小类为H小类,则a1、a2 ……a5分别对应H小类的h1、h2……h5,b1、b2、b3分别对应H小类的h6、h7、h8,每个目录中的产品关系为:
总目录:H = {h1, h2, h3, h4, h5, h6, h7, h8}
目录1:A = {h1, h2, h3, h4, h5}
目录2:B = {h6, h7, h8}
目录3:C = {h2, h3, h4, h6, h7}
产品分类关系表就是用于记录这种映射关系的数据表。
弹性目录的操作
对目录的操作主要有以下几种方式:
1)组合:由多个目录组合成一个目录。总目录就是由源目录组合而成的。
2)派生:从一个或几个目录派生出一个或多个目录,应用目录可以是从总目录或源目录派生出来的。
3)新增:注册一个新的目录,以满足某种应用的需要,除了总目录是唯一的外,源目录和应用目录都可以新增创建。
4)删除:删除一个不再使用的目录,以优化系统资源。
弹性目录中的数据查询和统计
实现弹性目录后,用户虽然是在他习惯的目录下操作,由于系统已经自动把产品信息映射到总目录,所以,对系统而言,所有产品信息只与总目录关联。当需要对某目录某类产品进行查询或统计时,先将该类产品转换成总目录里的产品类别,然后对它进行查询或统计,再将查询结果按该目录的产品类别进行表达输出。
图5给出了产品信息查询的过程。目录1中有A大类B中类C小类的产品,该小类产品对应目录2的A大类E中类C小类和目录3的H大类B中类K小类,与之对应的总目录产品分类为A大类B中类K小类,那么总目录K小类产品数据是目录1的A大类B中类C小类、目录2的A大类E中类C小类、目录3的H大类B中类K小类等产品数据的合集,当用户使用目录1对A大类B中类C小类的产品进行查询时,获得的是总目录A大类B中类K小类的产品信息。同样当用户使用目录3对H大类B中类K小类产品进行统计时,获得的也是总目录A大类B中类K小类的产品信息,从而保证了数据的完整。
弹性产品目录体系较好地解决了电子政务建设中遇到的多目录共存的情况。通过对产品分类目录以及关联的维护,既可以在熟悉的目录环境下工作,又可以通过产品分类的转换,与系统的总目录进行关联,从而保证了系统中产品信息的共享和交换。随着信息化进程的推进,一旦国际或国内最终实现了产品分类目录的统一,我们可以以总目录与此统一目录对应,即可方便地过渡到最终的单一产品分类目录,从而最大限度地保护了先期投资和积累的所有数据。
(作者单位:上海市质量技术监督局信息中心)