一种数据结构管理方法及系统技术方案

技术编号:2917411 阅读:256 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据结构管理方法,该方法包括:获取当前所需展开数据元素的子项数据元素,确定各个子项数据元素的标识ID;按照数据元素之间的层级隶属关系,通过子项数据元素的标识ID、以及所述当前所需展开数据元素的标识ID,逐层记录对数据元素进行数据结构的展开所获得的各层级数据元素,得到全展路径字段内容;数据结构展开结束后,遍历各数据元素的全展路径字段内容,根据数据元素的标识ID查询得到数据元素之间的层级隶属关系。本发明专利技术同时公开了一种数据结构管理系统,该方法和系统缩短了进行数据结构中所包含数据元素查询时的数据结构展开时间,提高了数据元素的查询效率,优化了对于数据结构的管理。

【技术实现步骤摘要】

本专利技术涉及数据结构管理技术,尤其涉及一种数据结构管理方法及系统
技术介绍
物料清单(BOM,Bill of Material)是计算机可以识别的产品结构数据文件,也是企业进行计划、采购、生产、商务、成本核算及技术管理等企业资源规划(ERP,Enterprise Resource Planning)的主导文件。BOM也叫产品结构或配方,用于记录物料(通常是完成品或半成品、部品)的组成情况,也即:物料由哪些下级物料组成,以及每一下级物料的用量等属性信息。每一个BOM都是一个单层的物料组织结构,由一个父项物料和若干个子项物料组成。由于BOM存在父项物料和子项物料的区别,因此,BOM中包含的每个物料都存在一个层级的概念。并且,除了最顶层物料和最底层物料之外,中间层级的物料既是其父项物料的子项物料,又是其子项物料的父项物料,由此,从最顶层产品向下由众多BOM构成一个产品树,该产品树由多层级的BOM组成。BOM展开就是从最顶层物料开始,将整个产品树中的物料逐层展开的过程,往往通过一些SQL算法或存储过程来实现。通常,ERP系统中记录一个产品BOM采用的是“单层物料清单”的方式记录,只记录该产品BOM中的主产品及该主产品的子项物料。采用单层记录有其自身的优点,例如:避免重复的记录,从而减少记录数,减少计算机中记录占用的容量;物料结构简单、易于管理等。如表1所示,为图1所示自行车BOM在计算机中以单层记录方式存储物料信息的表结构,在该表中同时记录了自行车BOM中所包含的每个BOM的父项物料和子项物料。-->表1或者,一些ERP系统在进行BOM物料信息存储时,将每个BOM中的父项物料和子项物料分别存储于BOM主件表和BOM部件表中,通过ID或BOM编号使得同一BOM中的父项物料和子项物料相互联系。如表2和表3所示,表2为BOM主件表,存储各个BOM的父项物料;表3为BOM部件表,存储各个BOM的子项物料。BOM主件表和BOM部件表中的父项物料和子项物料通过ID和BOM编号相互联系。表2 IDBOM编号产品用量10000BOM001自行车10110001BOM002车架101110002BOM003轮胎102210003BOM004电脑20110004BOM005主机2011-->表3在进行物料的企业资源规划中,例如,当进行某种物料的生产,如需生产100辆自行车,按照表1、或表2和表3所示的产品树确定所需生产的部件、以及各个部件的数量等时,需要对该物料对应的BOM进行展开,以获得该物料所包含的各个层级的物料。或者,查询某一物料在哪些产品中使用时,也需要将所有BOM展开,以便从展开结果中进行查询。以下,将介绍现有技术中进行BOM展开的方法。以BOM主件表(即表2)和BOM部件表(即表3)所示的物理表中的自行车为例,现有技术中,对自行车BOM展开的方法一般为:1)建立展开结果表,将BOM主件表需要展开的物料“自行车”、和“自行车”对应的[ID]放入展开结果表,并标记为未展开,当前层级为第0层。本步骤执行后获得的展开结果表结构如表4所示:-->表4 层级ID物料名称数量展开标记010000自行车101否2)循环展开结果表中第0层未展开的物料集合,根据所述物料集合中各个物料的[ID],依次从BOM部件表中获取各个物料的子项物料,存入展开结果表中,标记所述各个物料为已展开,当前层级为第(0+1)层。执行本步骤之后得到的展开结果表结构如表5所示:表5 层级ID物料名称数量展开标记010000自行车101是1车架1011否1轮胎1022否3)在BOM主件表中查找是否存在展开结果表中第1层级的物料,如果存在,则从BOM主件表中获取该物料的[ID],并根据该[ID]从BOM部件表中获取该物料的子项物料存入展开结果表中;如此循环,直到BOM展开到指定层级,展开结束。对展开结果表中第1层物料“车架”,从BOM主件表中查找到其[ID]为1001,根据该[ID]从BOM部件表中获取物料“车架”的子项物料为“扶手”和“车身”,将其放入展开结果表中;同样方法获取第1层物料“轮胎”的子项物料;上述物料放入展开结果表中作为第2层物料。由于上述第2层物料均不包含子项物料,因此物料“自行车”的BOM展开结束,所得到的展开结果表结构如表6所示。-->表6 层级ID物料名称数量展开标记010000自行车101是010001车架1011是010002轮胎1022是1扶手10011否1车身10021否1钢圈10211否 1        辐条1022  56  否这样,可以从展开结果表中获取物料“自行车”每一层级的物料。从上述展开方法的描述可知,现有技术中的展开方法存在以下缺点:需要查询某个BOM使用了哪些部件,或者查询某个部件在哪些BOM中被使用时,需要将相应的BOM全部展开,之后,从展开结果中过滤,得到查询结果,过程复杂,耗时严重;而且,展开结果一般仅可供当次查询使用,下一次重新进行类似查询时,该次展开结果无法被重复利用,进而也无法优化下一次的查询结果;由此,每次查询时,使用者一般需要浪费较长时间等待BOM展开完毕,以获得查询结果,降低了用户体验,进而限制了使用BOM进行企业物料资源管理的方法在企业中的推广和应用。
技术实现思路
有鉴于此,本专利技术要解决的技术问题是,提供一种数据结构管理方法及系统,以缩短进行数据结构中所包含数据元素查询时的数据结构展开时间,提高数据元素的查询效率,优化对于数据结构的管理。为此,本专利技术实施例采用如下技术方案:本专利技术提供了一种数据结构管理方法,该方法包括:步骤1:根据数据元素之间的层级隶属关系以及数据元素的标识ID,确定各个数据元素对应的全展路径字段内容;具体为:-->获取当前所需展开数据元素的子项数据元素,确定各个子项数据元素的标识ID;按照数据元素之间的层级隶属关系,通过子项数据元素的标识ID、以及所述当前所需展开数据元素的标识ID,逐层记录对数据元素进行数据结构的展开所获得的各层级数据元素,得到全展路径字段内容;步骤2:根据数据元素的标识ID遍历各数据元素的全展路径字段内容,查询得到数据元素之间的层级隶属关系,具体为:数据结构展开结束后,遍历各数据元素的全展路径字段内容,根据数据元素的标识ID查询得到数据元素之间的层级隶属关系。其中,确定所述当前所需展开数据元素的全展路径字段内容后,该方法进一步包括:依次查找所需展开数据元素的全展路径字段内容中包含的各个子项数据元素的标识ID是否对应有全展路径字段内容,并将所述所需展开数据元素的全展路径字段内容中包含的对应有全展路径字段内容的各个子项数据元素的标识ID替换为所述标识ID对应的全展路径字段内容。全展路径字段内容中的标识ID替换后,该方法进一步包括:遍历位于所需展开数据元素之上各层数据元素的全展路径字段内容,将所述各层数据元素的全展路径字段内容中包含的所述所需展开数据元素的标识ID替换为所述所需展开数据元素的全展路径字段内容。数据结构展开过程中所获取到的数据元素信息、以及确定的数据元素的属性信息存储于一物理表中;相应的,该方法进一步包括:确定各个子项数据元素的标识ID之前,依次判断各个子项数据元素是否已经存储于所述物理表中;如果子项数据元素已存储,则所述确定子项数据元素本文档来自技高网
...

【技术保护点】
一种数据结构管理方法,其特征在于,该方法包括: 步骤1:根据数据元素之间的层级隶属关系以及数据元素的标识ID,确定各个数据元素对应的全展路径字段内容; 具体为: 获取当前所需展开数据元素的子项数据元素,确定各个子项数据元素的标识ID; 按照数据元素之间的层级隶属关系,通过子项数据元素的标识ID、以及所述当前所需展开数据元素的标识ID,逐层记录对数据元素进行数据结构的展开所获得的各层级数据元素,得到全展路径字段内容; 步骤2:根据数据元素的标识ID遍历各数据元素的全展路径字段内容,查询得到数据元素之间的层级隶属关系,具体为: 数据结构展开结束后,遍历各数据元素的全展路径字段内容,根据数据元素的标识ID查询得到数据元素之间的层级隶属关系。

【技术特征摘要】
1、一种数据结构管理方法,其特征在于,该方法包括:步骤1:根据数据元素之间的层级隶属关系以及数据元素的标识ID,确定各个数据元素对应的全展路径字段内容;具体为:获取当前所需展开数据元素的子项数据元素,确定各个子项数据元素的标识ID;按照数据元素之间的层级隶属关系,通过子项数据元素的标识ID、以及所述当前所需展开数据元素的标识ID,逐层记录对数据元素进行数据结构的展开所获得的各层级数据元素,得到全展路径字段内容;步骤2:根据数据元素的标识ID遍历各数据元素的全展路径字段内容,查询得到数据元素之间的层级隶属关系,具体为:数据结构展开结束后,遍历各数据元素的全展路径字段内容,根据数据元素的标识ID查询得到数据元素之间的层级隶属关系。2、根据权利要求1所述的方法,其特征在于,确定所述当前所需展开数据元素的全展路径字段内容后,该方法进一步包括:依次查找所需展开数据元素的全展路径字段内容中包含的各个子项数据元素的标识ID是否对应有全展路径字段内容,并将所述所需展开数据元素的全展路径字段内容中包含的对应有全展路径字段内容的各个子项数据元素的标识ID替换为所述标识ID对应的全展路径字段内容。3、根据权利要求2所述的方法,其特征在于,全展路径字段内容中的标识ID替换后,该方法进一步包括:遍历位于所需展开数据元素之上各层数据元素的全展路径字段内容,将所述各层数据元素的全展路径字段内容中包含的所述所需展开数据元素的标识ID替换为所述所需展开数据元素的全展路径字段内容。4、根据权利要求1至3任一项所述的方法,其特征在于,数据结构展开过程中所获取到的数据元素信息、以及确定的数据元素的属性信息存储于一物理表中;相应的,该方法进一步包括:确定各个子项数据元素的标识ID之前,依次判断各个子项数据元素是否已经存储于所述物理表中;如果子项数据元素已存储,则所述确定子项数据元素的标识ID为:直接从所述物理表中获取该子项数据元素对应的标识ID;如果子项数据元素未存储,则将该子项数据元素以及对应的属性信息存储于所述物理表中;所述确定子项数据元素的标识ID为:根据一定的规则确定该子项数据元素的标识ID。5、根据权利要求4所述的方法,其特征在于,所述根据一定的规则确定具体为:将物理表中所存储的该子项数据元素前一个数据元素的标识ID增加设定步长,得到子项数据元素的标识ID。6、根据权利要求1至3任一项所述的方法,其特征在于,根据数据元素之间的层级隶属关系以及数据元素的标识ID,确定各个数据元素对应的全展路径字段内容具体为:根据数据元素之间的层级隶属关系以及数据元素的标识ID,确定各个数据元素对应的全展路径字段内容确定...

【专利技术属性】
技术研发人员:翟岳成
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1