一种多个多层表头的表格在数据库中的存储及其访问方法技术

技术编号:20272409 阅读:24 留言:0更新日期:2019-02-02 03:37
本发明专利技术公开了一种多个多层表头的表格在数据库中的存储及其访问方法,通过分别建立多个纸质表格数据库和多层表头实现多个多层表头的表格在数据库中的存储,并根据建立各数据库的表ID等信息快速访问数据库,高效快捷的实现纸质表格的的添加、删除、获取及访问。

【技术实现步骤摘要】
一种多个多层表头的表格在数据库中的存储及其访问方法
本专利技术涉及一种多个多层表头的表格在数据库中的存储方法。
技术介绍
在各个领域,长期以来都会产生和积累大量手绘的、印刷的或EXCEL格式保存的表格数据,将这些表格数据录入到数据库系统中存储,并提供增删改查的访问接口是经常会遇到的一种项目需求。对简单的表格来说,这种需求很容易满足,但对复杂的多层表头的表格,如何建立相应的数据库表,支持高效的数据录入和访问操作是一个值得思考的问题,特别是当同一个项目中存在许多张不同的多层表头表格时,数据库系统更需要合理设计来实现多层表头表格数据的存储和访问。
技术实现思路
为了解决上述技术问题,本专利技术的目的是提供一种多个多层表头的表格在数据库中的存储和访问方法。为解决上述技术问题,本专利技术采用如下技术方案:一种多个多层表头的表格在数据库中的存储方法,包括如下步骤:S1、多个纸质表格数据库的建立S1.1、建立记录所有纸质表格的数据的数据库表C,其中数据库表C中的每条记录对应原始某个纸质表格中的一条记录;S1.2、建立记录所有的纸质表格的表格信息的数据库表A,其中所述表格信息包括表的名称、所在纸质手册的名称、起始、结束页码、录入者、审校者、录入时间和备注等信息;S1.3、建立记录所有的纸质表格的表头信息的数据库表B,其中所述表头信息包括每个表头的每个栏目的名称、栏目层级、数据类型、字段序号、备注和表ID等信息;S2、多层表头的建立S2.1、将数据库表B中CLEVEL=1的栏目记录为单层表头栏目或多层表头的第一层栏目,CLEVEL=2是第二层栏目,且其上一层是数据库表B中它之前最靠近它的一个CLEVEL=1的栏目,CLEVEL=3、4…时依此类推;其中:所述数据库表A、B、C均有各自的主键,所述主键包括表ID、栏目ID、记录ID,所述主键均设置为自动增长,其中所述数据库表B和数据库表C中都以表ID作为外键。进一步的,所述数据库表C采用ORACLE数据库。一种多个多层表头的表格在数据库中的访问方法,包括如下步骤:要访问一张纸质表格的数据时,从数据库表A中得到该纸质表的表ID,然后从表B中利用该表ID得到该表的所有表头栏目信息,表头栏目信息明确了表头中各栏目的层次关系和顺序以及最下一层每个栏目对应的数据在表C中的字段名,然后根据表B中各栏目的数值从表C中获得对应数据进行访问。进一步的,该多个多层表头的表格在数据库中的访问方法具体步骤如下:1)添加一个表:在表A中添加一条记录,并得到该条记录的表ID;遍历描述表头的XML或JSON数据结构,在表B中插入各个表头栏目,具体遍历过程如下:遍历同一层节点元素;如果当前节点元素有下一层节点,则在表B中添加一行记录,该记录的CTYPE和CORDER为空,CLEVEL是当前CLEVEL值,然后设置CLEVEL值加一,并跳转到上一步遍历下一层节点;如果当前节点元素没有下一层节点,则在表B中添加一行记录,该记录的CTYPE根据节点数据类型设定,并根据数据类型决定CORDER值等于CORDER1或CORDER2,然后设置CORDER1或CORDER2值加一,CLEVEL是当前CLEVEL值;同一层节点元素遍历结束返回上一层时CLEVEL值减一;把表格数据按照各栏目对应的CORDER值插入到表C中;2)删除一个表,指定表ID:根据TID删除表A中的一条记录;删除表B中的表ID等于所给表ID的记录;删除表C中的表ID等于所给表ID的记录;3)获取表头信息,指定表ID:查询表B中表ID等于指定表ID的所有记录,并按照栏目ID顺序排列;按照从后往前的顺序遍历这些记录,生成XML或JSON的数据结构;4)访问表中数据,指定表ID:根据指定表ID查询表B得到的该表各栏目的CORDER值;使用这些CORDER值生成访问表C的SQL语句;执行生成的SQL语句完成数据访问任。与现有技术相比,本专利技术的有益技术效果:通过分别建立多个纸质表格数据库和多层表头实现多个多层表头的表格在数据库中的存储,并根据建立各数据库的表ID等信息快速访问数据库,高效快捷的实现纸质表格的的添加、删除、获取及访问。附图说明下面结合附图说明对本专利技术作进一步说明。图1为三张数据库表及其关系图。具体实施方式一种多个多层表头的表格在数据库中的存储方法,包括如下步骤:S1、多个纸质表格数据库的建立S1.1、建立记录所有纸质表格的数据的数据库表C,其中数据库表C中的每条记录对应原始某个纸质表格中的一条记录;S1.2、建立记录所有的纸质表格的表格信息的数据库表A,其中所述表格信息包括表的名称、所在纸质手册的名称、起始、结束页码、录入者、审校者、录入时间和备注;S1.3、建立记录所有的纸质表格的表头信息的数据库表B,其中所述表头信息包括每个表头的每个栏目的名称、栏目层级、数据类型、字段序号、备注和表ID;S2、多层表头的建立S2.1、将数据库表B中CLEVEL=1的栏目记录为单层表头栏目或多层表头的第一层栏目,CLEVEL=2是第二层栏目,且其上一层是数据库表B中它之前最靠近它的一个CLEVEL=1的栏目,CLEVEL=3、4…时依此类推;其中:所述数据库表A、B、C均有各自的主键,所述主键包括表ID、栏目ID、记录ID,所述主键均设置为自动增长,其中所述数据库表B和数据库表C中都以表ID作为外键。实施例1如果对每一个纸质表格都建立一个对应的数据库表,数据库中将产生大量数据量不多的表格,且这些表格的格式都不统一,使得存储和访问接口难以实现,数据使用效率不高(表很多,每个表里的数据不多,不利于数据库自身的优化)。这些纸质表格虽然格式各不相同,但其数据要么是数值类型要么是字符串类型,因此我们把所有表格的数据放在同一个数据库表C中存储,表C中的每条记录对应原始某个纸质表格中的一条记录,假设所有原始纸质表格一条记录(一行)里最多有10个数值类型的数据和5个字符串类型的数据,我们采用ORACLE数据库,则表C如下:表C用数据库表A记录所有的纸质表格信息,包括表的名称、所在纸质手册的名称、起始和结束页码、录入人、审校者等信息,用数据库表B记录所有的表头信息,包括每个表头的每个栏目的名称、层级、数据类型、数据表字段序号等信息。表A和表B如下:表A表B三张数据库表及其关系如图1所示,三张表都有各自的主键(表ID、栏目ID、记录ID),主键都设置为自动增长,表B和表C中都以表ID作为外键,这样,要访问一张纸质表格的数据时,可以从表A中得到该纸质表的表ID,然后从表B中利用该表ID得到该表的所有表头栏目信息,表头栏目信息明确了表头中各栏目的层次关系和顺序以及最下一层每个栏目对应的数据在表C中的字段序号。然后根据表B中各栏目的CORDER值从表C中获得对应数据进行访问。多层表头的建立:将数据库表B中CLEVEL=1表示该栏目是单层表头栏目或多层表头的第一层栏目,CLEVEL=2是第二层栏目,且其上一层是表B中它之前最靠近它的一个CLEVEL=1的栏目,CLEVEL=3,4…时依此类推。按照上述方法,下述的产品参数表1,在数据库中的记录如下:产品参数表1表ATIDNAMEBOOKSTARTPAGEENDPAGERECORDERAUDITORCDATE2产品参数表1AAA设计手册6本文档来自技高网...

【技术保护点】
1.一种多个多层表头的表格在数据库中的存储方法,其特征在于:包括如下步骤:S1、多个纸质表格数据库的建立S1.1、建立记录所有纸质表格的数据的数据库表C,其中数据库表C中的每条记录对应原始某个纸质表格中的一条记录;S1.2、建立记录所有的纸质表格的表格信息的数据库表A,其中所述表格信息包括表的名称、所在纸质手册的名称、起始、结束页码、录入者、审校者、录入时间和备注;S1.3、建立记录所有的纸质表格的表头信息的数据库表B,其中所述表头信息包括每个表头的每个栏目的名称、栏目层级、数据类型、字段序号、备注和表ID;S2、多层表头的建立S2.1、将数据库表B中CLEVEL=1的栏目记录为单层表头栏目或多层表头的第一层栏目,CLEVEL=2是第二层栏目,且其上一层是数据库表B中它之前最靠近它的一个CLEVEL=1的栏目,CLEVEL=3、4…时依此类推;其中:所述数据库表A、B、C均有各自的主键,所述主键包括表ID、栏目ID、记录ID,所述主键均设置为自动增长,其中所述数据库表B和数据库表C中都以表ID作为外键。

【技术特征摘要】
1.一种多个多层表头的表格在数据库中的存储方法,其特征在于:包括如下步骤:S1、多个纸质表格数据库的建立S1.1、建立记录所有纸质表格的数据的数据库表C,其中数据库表C中的每条记录对应原始某个纸质表格中的一条记录;S1.2、建立记录所有的纸质表格的表格信息的数据库表A,其中所述表格信息包括表的名称、所在纸质手册的名称、起始、结束页码、录入者、审校者、录入时间和备注;S1.3、建立记录所有的纸质表格的表头信息的数据库表B,其中所述表头信息包括每个表头的每个栏目的名称、栏目层级、数据类型、字段序号、备注和表ID;S2、多层表头的建立S2.1、将数据库表B中CLEVEL=1的栏目记录为单层表头栏目或多层表头的第一层栏目,CLEVEL=2是第二层栏目,且其上一层是数据库表B中它之前最靠近它的一个CLEVEL=1的栏目,CLEVEL=3、4…时依此类推;其中:所述数据库表A、B、C均有各自的主键,所述主键包括表ID、栏目ID、记录ID,所述主键均设置为自动增长,其中所述数据库表B和数据库表C中都以表ID作为外键。2.根据权利要求1所述的多个多层表头的表格在数据库中的存储方法,其特征在于:所述数据库表C采用ORACLE数据库。3.一种多个多层表头的表格在数据库中的访问方法,其特征在于,包括如下步骤:要访问一张纸质表格的数据时,从数据库表A中得到该纸质表的表ID,然后从表B中利用该表ID得到该表的所有表头栏目信息,表头栏目信息明确了表头中各栏目的层次关系和顺序以及最下一层每个栏目对应的数据在表C中的字段名,然...

【专利技术属性】
技术研发人员:王一拙计卫星高玉金石峰
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

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

1