著录项信息
专利名称 | 不规则字段存储方法和系统 |
申请号 | CN200910090657.0 | 申请日期 | 2009-09-03 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-02-10 | 公开/公告号 | CN101645085 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北京用友移动商务科技有限公司 | 申请人地址 | 北京市海淀区北清路68号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 用友网络科技股份有限公司 | 当前权利人 | 用友网络科技股份有限公司 |
发明人 | 杜树峰 |
代理机构 | 北京友联知识产权代理事务所(普通合伙) | 代理人 | 尚志峰;梁朝玉 |
摘要
本发明提供了不规则字段存储方法,包括:建立主体表,将分类相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类数据存储字段用于存储这自有字段信息;建立分类表,将分类信息存储在所述分类表中,所述分类表还存储有自有字段信息在主体表中分类数据存储字段中的顺序;建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。既避免了使用一个超级大表存储数据带来的大量冗余数据问题,又不会产生许多的表,就因此避免了许多零碎的表结构带来的维护开销。
1.一种不规则字段存储方法,其特征在于,包括:
建立主体表,将各分类中相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类类型字段用于存储各分类的标识,所述分类数据存储字段用于存储各分类中的多个自有字段信息;
建立分类表,将各分类的分类信息存储在所述分类表中,所述分类表还存储有所述自有字段信息在主体表中分类数据存储字段中的顺序;
建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。
2.根据权利要求1所述的不规则字段存储方法,其特征在于,使用不可见的控制字符将每个自有字段信息断开。
3.根据权利要求1或2所述的不规则字段存储方法,其特征在于,进一步包括:使用文本保存每个自有字段在数据库中的数据的镜像记录,在更新所述自有字段信息时,更新所述镜像记录,并记录经过修改的所述自有字段的唯一标识符。
4.根据权利要求1或2所述的不规则字段存储方法,其特征在于,进一步包括:通过数据库脚本进行数据库数据的更新。
5.一种不规则字段存储系统,其特征在于,包括:
主体表建立装置,用于建立主体表,将各分类中相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类类型字段用于存储各分类的标识,所述分类数据存储字段用于存储各分类中的多个自有字段信息;
分类表建立装置,用于建立分类表,将各分类的分类信息存储在所述分类表中,所述分类表还存储有所述自有字段信息在主体表中分类数据存储字段中的顺序;
属性表建立装置,用于建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。
6.根据权利要求5所述的不规则字段存储系统,其特征在于,使用不可见的控制字符将每个自有字段信息断开。
7.根据权利要求5或6所述的不规则字段存储系统,其特征在于,进一步包括镜像记录保存装置,用于使用文本保存每个自有字段在数据库中的数据的镜像记录,在更新所述自有字段信息时,更新所述镜像记录,并记录经过修改的所述自有字段的唯一标识符。
8.根据权利要求5或6所述的不规则字段存储系统,其特征在于,进一步包括更新装置,用于通过数据库脚本进行数据库数据的更新。
不规则字段存储方法和系统\n技术领域\n[0001] 本发明涉及数据库技术,更具体地涉及不规则字段存储方法和系统。\n背景技术\n[0002] 在现有的数据结构中,有一种不规则数据结构如下:该数据结构的大部分基本字段都是相同的,但是在其不同的分类之间还是有一些有区别的自有字段。同样是商铺的数据,他们都具有名称、地址、联系电话等共有的信息字段。然而,不同的行业和类别之间又存在着各自有区别的信息字段,像是餐饮行业里有包间数量,特色菜品;车辆运输的时候,每辆车都有其能够承载的吨位的限制等等。再有就是这些自有字段有不确定性,因为每个行业都会有它新增的自有字段,例如在以前付钱的时候都是使用现金,而在现在人们都是用信用卡,所以就会增加是否支持信用卡消费字段。\n[0003] 现有的数据库设计在存储这种不规则的数据的时候,一般有两种方式:一种方式是使用一个超级大的表,这个表中要包含所有的共有字段和自有字段,这种方式完成了功能需求但是却记录了大量冗余的无效数据;一种是对应数据的相同部分要一个表,每一个不同分类的自有字段再对应一个反映其特殊结构的表。那么在这种情况下,在数据库表中就要有大量的表来描述不同分类对应的自有字段。就因此造成了庞大的表格数量,在需要增改自有字段的情况下引起了不小的维护开销,而且在搜索数据的时候也会带来很大的查询开销。\n[0004] 解决存储不规则数据造成的大量数据冗余和表结构所带来的巨大的维护开销,就需要新型的不规则字段存储方法和系统。\n发明内容\n[0005] 为了解决上述问题之一,本发明提供了不规则字段存储方法,包括:建立主体表,将分类相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类数据存储字段用于存储自有字段信息;建立分类表,将分类信息存储在所述分类表中,所述分类表还存储有自有字段信息在主体表中分类数据存储字段中的顺序;建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。\n[0006] 所述分类信息实际上是指这个分类都存储有哪些自有字段以及这些自有字段所处的位置的对映关系。举例说明:如果分类号是10000的信息内容为“1|2|3”,那么就是意味着主体表中存储的实际数据为“1自有数据字段的内容\02自有字段的内容\03自有字段的内容(其中\0是隐藏的分割符)”。\n[0007] 所述属性表记录的是所有自有字段的id(既编号)和该编号对应字段的名称以及其他有关该自有字段的属性。在分类表中的分类信息中保存的“1|2|3”中的数字1、2、3就是属性表中的自有字段id编号。\n[0008] 在上述方法中,优选地,使用不可见的控制字符隔例如:“\0”将每个自有字段信息断开。\n[0009] 在上述方法中,优选地,进一步包括:使用文本建立每个自有字段和数据库中的数据之间的镜像关系,在更新所述自有字段时,更新所述镜像关系,并记录经过修改的所述自有字段的唯一标识符。每一个自有字段要对应一个文本文件;该文本文件要记录的内容包括本条数据记录在数据库中的唯一的标识,本数据属于的分类号和这条数据保存的自有字段的内容(如果该数据保存的该自有字段的内容为空的话则不出现这条记录)。\n[0010] 在上述方法中,优选地,进一步包括:通过数据库脚本进行数据库数据的更新。\n[0011] 在上述方法中,优选地,通过修改脚本进行数据库数据的更新具体为:使用线下的文本,修改所述不规则字段,生成批次更新的数据库脚本,执行所述批次更新的数据库脚本完成数据库数据的更新。\n[0012] 数据库脚本的生成方法如下:将做过修改的数据的唯一标识在分类所对应的自有字段文件里遍历,将该数据按照分类表描述格式,将所有自有字段组合成一条数据库的更新语句。最后把所有中数据的更新语句写进文本形成数据的更新脚本。数据更新自有字段的时候,实际修改的是文本镜像记录的内容,并且把做过修改的数据的唯一标识记录下来备用。\n[0013] 本发明还提供了一种不规则字段存储系统,包括:主体表建立装置,用于建立主体表,将分类相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类数据存储字段用于存储这一分类的所有的自有字段信息;\n分类表建立装置,用于建立分类表,将分类信息存储在所述分类表中,所述分类表还存储有这一分类的自有字段在主体表中分类数据存储字段中的顺序;属性表建立装置,用于建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。\n[0014] 所述分类信息实际上是指这个分类都存储有哪些自有字段以及这些自有字段所处的位置的对映关系。举例说明:如果分类号是10000的信息内容为“1|2|3”,那么就是意味着主体表中存储的实际数据为“1自有数据字段的内容\02自有字段的内容\03自有字段的内容(其中\0是隐藏的分割符)”。\n[0015] 所述属性表记录的是所有自有字段的id(既编号)和该编号对应字段的名称以及其他有关该自有字段的属性。在分类表中的分类信息中保存的“1|2|3”中的数字1、2、3就是属性表中的自有字段id编号。\n[0016] 在上述系统中,优选地,使用不可见的控制字符隔将每个自有字段信息断开。\n[0017] 在上述系统中,优选地,进一步包括镜像关系建立装置,用于使用文本建立每个自有字段和数据库中的数据之间的镜像关系,在更新所述自有字段时,更新所述镜像关系,并记录经过修改的所述自有字段的唯一标识符。\n[0018] 在上述系统中,优选地,进一步包括更新装置,用于通过数据库脚本进行数据库数据的更新。\n[0019] 在上述系统中,优选地,所述更新装置使用线下的文本,修改所述不规则字段,生成批次更新的数据库脚本,执行所述批次更新的数据库脚本完成数据库数据的更新。\n[0020] 通过上述技术方案,既避免了使用一个超级大表存储数据带来的大量冗余数据问题,又不会产生许多的表,就因此避免了许多零碎的表结构带来的维护开销。\n附图说明\n[0021] 图1示出了根据本发明的不规则字段存储方法的流程图;以及\n[0022] 图2示出了根据本发明的不规则字段存储系统的框图。\n具体实施方式\n[0023] 下面结合附图和具体实施方式对本发明作进一步详细的说明。\n[0024] 图1示出了根据本发明的不规则字段存储方法的流程图。\n[0025] 该方法包括:步骤102,建立主体表,将分类相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类数据存储字段用于存储自有字段信息;步骤104,建立分类表,将分类信息存储在所述分类表中,所述分类表还存储有自有字段信息在主体表中分类数据存储字段中的顺序;步骤106,建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。\n[0026] 所述分类信息实际上是指这个分类都存储有哪些自有字段以及这些自有字段所处的位置的对映关系。举例说明:如果分类号是10000的信息内容为“1|2|3”,那么就是意味着主体表中存储的实际数据为“1自有数据字段的内容\02自有字段的内容\03自有字段的内容(其中\0是隐藏的分割符)”。\n[0027] 所述属性表记录的是所有自有字段的id(既编号)和该编号对应字段的名称以及其他有关该自有字段的属性。在分类表中的分类信息中保存的“1|2|3”中的数字1、2、3就是属性表中的自有字段id编号。\n[0028] 在上述方法中,优选地,使用不可见的控制字符隔将每个自有字段信息断开。\n[0029] 在上述方法中,优选地,进一步包括:使用文本建立每个自有字段和数据库中的数据之间的镜像关系,在更新所述自有字段时,更新所述镜像关系,并记录经过修改的所述自有字段的唯一标识符。每一个自有字段要对应一个文本文件;该文本文件要记录的内容包括本条数据记录在数据库中的唯一的标识,本数据属于的分类号和这条数据保存的自有字段的内容(如果该数据保存的该自有字段的内容为空的话则不出现这条记录)。\n[0030] 在上述方法中,优选地,进一步包括:通过数据库脚本进行数据库数据的更新。\n[0031] 在上述方法中,优选地,通过修改脚本进行数据库数据的更新具体为:使用线下的文本,修改所述不规则字段,生成批次更新的数据库脚本,执行所述批次更新的数据库脚本完成数据库数据的更新。\n[0032] 数据库脚本的生成方法如下:将做过修改的数据的唯一标识在分类所对应的自有字段文件里遍历,将该数据按照分类表描述格式,将所有自有字段组合成一条数据库的更新语句。最后把所有中数据的更新语句写进文本形成数据的更新脚本。数据更新自有字段的时候,实际修改的是文本镜像记录的内容,并且把做过修改的数据的唯一标识记录下来备用。\n[0033] 下面通过一个实例来说明上述方法。\n[0034] 将各个分类相同的基本字段集中在一个主体表中,在这个主体表中另外要加入分类类型字段和分类数据存储字段。分类数据存储字段中要记录这个分类的所有的自有字段的信息,在每个自有字段信息之间用不可见的控制字符隔“\0”断开。如表1所示。\n[0035] \n 商家id 分类id 基本字段 自有字段\n 100元\0支持使\n 用信用卡\0有包\n 间\07:00-18:00\n ……\n[0036] 表1\n[0037] 数据的分类信息要配合有一张分类表(参见表2),这个表除了要记录本分类的信息以外,还要记录该分类的自有字段在主体表中分类数据存储字段里面的顺序。\n[0038] \n 分类id 分类名称 自有字段顺序\n 1|2|6|15\n 2|3|4\n ……\n[0039] 表2\n[0040] 另外还需要一张属性表(参见表3)来记录全部分类的所有的自有字段,在分类表里面记录自有字段顺序的时候就可以使用该表的ID号。\n[0041] \n 自有字段id 自有字段名称\n 1 人均消费额\n 2 是否支持使用信用卡\n …… ……\n 6 是否有包间\n …… ……\n 15 营业时间\n[0042] 表3\n[0043] 在数据库以外,需要使用文本把各个自有字段的数据做一个镜像记录,这个记录(参见表4)里面要保存有这个自有字段对应信息的关键字段可以让它与数据库中的数据联系起来。\n[0044] \n 商家id 分类id 自有字段数据内容\n 100元\n 72元\n ……\n[0045] 表4\n[0046] 平时前台数据展示的时候,通过数据库的各个表的关系可以将分类数据存储字段中的数据拆分成需要的格式显示在前台页面。针对自有字段做修改的时候只需要在属性表里添改查相应的自有字段,然后修改分类表的数据就可以完成了整个数据模型的修改。在更新数据的时候就可以使用线下的文本,将要处理的数据处理和修改好,最后将修改后的数据重新合并好形成一个批次更新的数据库脚本,执行该脚本以后就完成了数据库数据的更新。\n[0047] 图2示出了根据本发明的不规则字段存储系统的框图。\n[0048] 该不规则字段存储系统200包括:主体表建立装置202,用于建立主体表,将分类相同的基本字段存储在所述主体表中,其中,所述主体表还存储有分类类型字段和分类数据存储字段,所述分类数据存储字段用于存储自有字段信息;分类表建立装置204,用于建立分类表,将分类信息存储在所述分类表中,所述分类表还存储有自有字段信息在主体表中分类数据存储字段中的顺序;属性表建立装置206,用于建立属性表,将全部分类的所有的自有字段的属性存储在所述属性表中。\n[0049] 所述分类信息实际上是指这个分类都存储有哪些自有字段以及这些自有字段所处的位置的对映关系。举例说明:如果分类号是10000的信息内容为“1|2|3”,那么就是意味着主体表中存储的实际数据为“1自有数据字段的内容\02自有字段的内容\03自有字段的内容(其中\0是隐藏的分割符)”。\n[0050] 所述属性表记录的是所有自有字段的id(既编号)和该编号对应字段的名称以及其他有关该自有字段的属性。在分类表中的分类信息中保存的“1|2|3”中的数字1、2、3就是属性表中的自有字段id编号。\n[0051] 在上述系统中,优选地,使用不可见的控制字符隔将每个自有字段信息断开。\n[0052] 在上述系统中,优选地,进一步包括镜像关系建立装置208,用于使用文本建立每个自有字段和数据库中的数据之间的镜像关系。每一个自有字段要对应一个文本文件;该文本文件要记录的内容包括本条数据记录在数据库中的唯一的标识,本数据属于的分类号和这条数据保存的自有字段的内容(如果该数据保存的该自有字段的内容为空的话则不出现这条记录)。\n[0053] 在上述系统中,优选地,进一步包括更新装置210,用于通过数据库脚本进行数据库数据的更新。\n[0054] 在上述系统中,优选地,所述更新装置使用线下的文本,修改所述不规则字段,生成批次更新的数据库脚本,执行所述批次更新的数据库脚本完成数据库数据的更新。\n[0055] 数据库脚本的生成方法如下:将做过修改的数据的唯一标识在分类所对应的自有字段文件里遍历,将该数据按照分类表描述格式,将所有自有字段组合成一条数据库的更新语句。最后把所有中数据的更新语句写进文本形成数据的更新脚本。数据更新自有字段的时候,实际修改的是文本镜像记录的内容,并且把做过修改的数据的唯一标识记录下来备用。\n[0056] 通过上述技术方案,既避免了使用一个超级大表存储数据带来的大量冗余数据问题,又不会产生许多的表,就因此避免了许多零碎的表结构带来的维护开销。\n[0057] 有某系统,同时拥有餐饮、超市、旅游景点和政府机关等多个分类。公共字段有:\n名称、地址、联系电话分类号;餐饮分类的自有字段有特色菜和人均消费额,超市的自有字段有营业时间、货品数量和停车位数,旅游景点有门票价格和停车位数,政府机关有办公时间,等等。\n[0058] 使用根据本发明的技术方案,将不论系统中使用多少个分类,我们只需要使用3个表就能描述全部的数据格式。在查询数据的时候,只需要查询主体表就能得到相应的全部数据内容而且没有冗余数据,在新增是否支持信用卡字段的时候,只需要更新数据库里面的数据,而原有的表的结构并不需要修改。\n[0059] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-08-20
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 200910090657.0
申请日: 2009.09.03
授权公告日: 2012.09.12
- 2015-04-15
专利权人的姓名或者名称、地址的变更
专利权人由用友软件股份有限公司变更为用友网络科技股份有限公司
地址由100094 北京市海淀区北清路68号变更为100094 北京市海淀区北清路68号
- 2012-12-05
专利权人的姓名或者名称、地址的变更
专利权人由北京伟库电子商务科技有限公司变更为用友软件股份有限公司
地址由100094 北京市海淀区北清路68号用友软件园变更为100094 北京市海淀区北清路68号
- 2012-09-12
- 2012-07-04
著录事项变更
申请人由北京用友移动商务科技有限公司变更为北京伟库电子商务科技有限公司
地址由100094 北京市海淀区北清路68号用友软件园变更为100094 北京市海淀区北清路68号用友软件园
- 2010-07-21
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 200910090657.0
申请日: 2009.09.03
- 2010-02-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-06-24
|
2008-12-31
| | |
2
| | 暂无 |
1997-10-31
| | |
3
| |
2000-10-18
|
1999-04-09
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |