CN111241093A - 一种基于数据库的动态存储扩展方法 - Google Patents

一种基于数据库的动态存储扩展方法 Download PDF

Info

Publication number
CN111241093A
CN111241093A CN201911413841.4A CN201911413841A CN111241093A CN 111241093 A CN111241093 A CN 111241093A CN 201911413841 A CN201911413841 A CN 201911413841A CN 111241093 A CN111241093 A CN 111241093A
Authority
CN
China
Prior art keywords
data
original
query
extension
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911413841.4A
Other languages
English (en)
Other versions
CN111241093B (zh
Inventor
杨涛
陈伟绩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Taimei Xingcheng Pharmaceutical Technology Co., Ltd
Original Assignee
Mobilemd System Jiaxing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mobilemd System Jiaxing Co ltd filed Critical Mobilemd System Jiaxing Co ltd
Priority to CN201911413841.4A priority Critical patent/CN111241093B/zh
Publication of CN111241093A publication Critical patent/CN111241093A/zh
Application granted granted Critical
Publication of CN111241093B publication Critical patent/CN111241093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于数据库的动态存储扩展方法,包括:构建包括扩展表定义表、扩展存储字段定义表和扩展字段数据存储表,等待数据扩展操作;向所述扩展表定义表中的原始表发出数据扩展操作请求;拦截所述数据扩展请求;分析所述数据扩展操作语句,检查所述扩展表定义表中是否有扩展字段,如果无所述扩展字段,将原始数据就直接写入原始表;如果包含所述扩展字段,首先从所述扩展存储字段定义表找到定义的扩展字段信息;构建向所述扩展字段数据存储表进行数据扩展操作的语句,并执行;将所述原始表的数据写入原始表,结束此次数据扩展操作,等待下一个操作。本发明能够在不重新开发和部署的情况下,满足增加存储的需求。

Description

一种基于数据库的动态存储扩展方法
技术领域
本发明主要涉及存储扩展方法,尤其涉及一种基于数据库的动态存储扩展方法。
背景技术
在基于关系型数据库存储的软件系统中,数据的存储是通过数据表来存储的,关系型数据库的数据表需要预先定义好,然后再对数据表做增加、删除、修改、查询等操作,当需求方提出要增加存储字段的需求时,
如果使用关系型数据库,为了满足需求方增加存储的需求,通常的做法是先增加数据库字段,再修改软件代码,然后再部署上线,交付。
如果使用非关系型数据库,那么会很难保障事务的一致性。
传统方案的缺点包括如下三方面:
第一,需要同时修改数据库的schema和代码,这种操作势必会增加系统的不稳定性,特别对于需要频繁处理的场合;
第二,软件需要修改,需要重新测试;
综上所述,传统的方案会花费较长的事件在软件系统交付上,而且,软件系统需要修改,重新部署安装。
发明内容
本发明要解决的技术问题是提供
为解决上述技术问题,本发明提供了一种基于数据库的动态存储扩展方法,其特征在于,所述方法包括:
步骤一,构建包括扩展表定义表、扩展存储字段定义表和扩展字段数据存储表,等待数据扩展操作;
步骤二,向所述扩展表定义表中的原始表发出数据扩展操作请求;
步骤三,拦截所述数据扩展请求;
步骤四,分析所述数据扩展操作语句,检查所述扩展表定义表中是否有扩展字段,如果包含所述扩展字段,进入步骤六,如果无所述扩展字段,进入步骤五;
步骤五,将原始数据就直接写入原始表;
步骤六,如果包含所述扩展字段,首先从所述扩展存储字段定义表找到定义的扩展字段信息;
步骤七,根据步骤五,构建向所述扩展字段数据存储表进行数据扩展操作的语句,并执行;
步骤八,将所述原始表的数据写入原始表,结束此次数据扩展操作,等待下一个操作。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据新增,其中,
所述步骤二的所述数据扩展操作包括写入一条原始数据;
所述步骤三进一步包括,Mybatis的Update拦截器将所述写入过程进行拦截;
所述步骤四进一步包括,所述拦截器分析新增语句;
所述步骤五进一步包括,将所述原始数据直接写入原始表;
所述步骤七进一步包括,构建向所述扩展字段数据存储表写入数据的sql语句;
所述步骤八进一步包括,将所述原始表的数据写入原始表。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据修改,其中,
所述步骤二的所述数据扩展操作包括更新一条原始数据;
所述步骤三进一步包括,Mybatis的Update拦截器将所述更新过程进行拦截;
所述步骤四进一步包括,所述拦截器分析更新语句;
所述步骤五进一步包括,将所述原始数据直接更新原始表;
所述步骤七进一步包括,构建向所述扩展字段数据存储表更新数据的sql语句;
所述步骤八进一步包括,将所述原始表的数据更新原始表。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据查询;
所述步骤二的所述数据扩展操作包括向原始表发出查询请求;
所述步骤三进一步包括,Mybatis的Select拦截器将查询请求进行拦截,进行语法分析,并找到要查询的应用程序的数据表;
所述步骤四进一步包括,所述拦截器分析查询语句;
所述步骤五进一步包括,查询所述扩展存储字段定义表中的查询扩展字段具体信息;
所述步骤六进一步包括,将所述扩展字段放到查询结果中,在查询所述应用程序数据表的数据时也查询所述扩展字段;
所述步骤七进一步包括,将原始表和所述扩展字段数据存储表进行数据连接,组装成一个语句;
所述步骤八进一步包括,
将原来语句的查询条件整合到新的查询语句中;
将新的查询语句发送到数据库查询;
所述数据库查询后返回查询结果,将原来查询的扩展属性放入所述查询结果的extMap属性中。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括多表连接数据查询;
所述步骤二的所述数据扩展操作包括向原始表发出查询请求;
所述步骤三进一步包括,Mybatis的Select拦截器将查询请求进行拦截,进行语法分析,并找到要查询的应用程序的数据表,所述数据表是多表连接构建而成;
所述步骤四进一步包括,所述拦截器分析查询语句;
所述步骤五进一步包括,查询所述扩展存储字段定义表中的查询扩展字段具体信息;
所述步骤六进一步包括,将所述扩展字段放到查询结果中,在查询多个所述应用程序数据表的数据时也查询所述扩展字段;
所述步骤七进一步包括,将所述原始表和所述扩展字段数据存储表进行数据连接,组装成一个语句;
所述步骤八进一步包括,
将原来语句的查询条件整合到新的查询语句中;
将新的查询语句发送到数据库查询;
所述数据库查询后返回查询结果,将原来查询的扩展属性放入所述查询结果的extMap属性中。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述应用程序中的数据表为原始表,所述应用程序向所述应用程序数据库写入的数据为所述原始数据。
比较好的是,本发明进一步提供了一种基于数据库的动态存储扩展方法,其特征在于,
所述扩展字段信息包括:
name,value_num,value_type,value_format。
与现有技术相比,本发明具有以下优点:
本发明提出一种基于数据库的动态存储扩展方法,能够在不重新开发和部署的情况下,满足增加存储的需求。
附图说明
包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1是应用本方法的系统组成框图;
图2是本发明的基于数据库的动态存储扩展方法数据新增的流程图;
图3是本发明的基于数据库的动态存储扩展方法数据修改的流程图;
图4是本发明的基于数据库的动态存储扩展方法数据查询的流程图;
图5是本发明的基于数据库的动态存储扩展方法多表连接查询的流程图。
附图标记
10――结构化查询语言(SQL)解析工具
20――扩展字段定义数据库
30――应用程序数据库
301――数据表
302――查询辅助表
303――应用程序数据表
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在本申请的描述中,需要理解的是,方位词如“前、后、上、下、左、右”、“横向、竖向、垂直、水平”和“顶、底”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,在未作相反说明的情况下,这些方位词并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本申请保护范围的限制;方位词“内、外”是指相对于各部件本身的轮廓的内外。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本申请保护范围的限制。此外,尽管本申请中所使用的术语是从公知公用的术语中选择的,但是本申请说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本发明的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本申请。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请针对的是关系型数据库的存储扩展,通过不同的应用程序,实现数据新增、数据修改、数据查询和多表连接查询等操作。
图1示意了本发明的动态扩展方法的系统组成原理图,根据该图,各个应用程序通过管理关系型数据库系统的结构化查询语言(SQL)工具10,对由元数据构成的扩展字段定义数据库20进行操作,既而在应用程序数据库30中实现扩展存储。
下面将结合相关操作流程详细介绍各个过程。
表1为图1中扩展字段定义数据库20中元数据中的数据存储表:
该扩展表定义表(t_mdm_table)为:
Figure BDA0002350669570000081
表1
表2为扩展存储字段定义表(t_mdm_column),是在表1的基础上扩展字段形成的表:
该扩展存储字段定义表(t_mdm_column)为:
Figure BDA0002350669570000091
表2
表3为扩展字段数据存储表。
对应应用程序数据库30中的数据表301中系统中增加一个扩展存储表(t_ext_data):
Figure BDA0002350669570000092
Figure BDA0002350669570000101
表3
上述每张表的扩展存储字段多少,通常由关系型数据库的每行最大存储决定,在Mysql中测试下来200>=N>=195,在Oracle数据库中N≤500。
下面,结合实现流程图,分别详细介绍应用本发明方法进行扩展的步骤。
图2是应用本发明的方法在数据新增时的实现方法。
步骤20,初始化,初始化需要先构建3个表,即对应前面所描述的三个表,等待新增数据操作;
步骤21,向应用程序数据库30中的数据表301的某张原始表写入一条原始数据;
步骤22,Mybatis的Update拦截器将写入的过程进行拦截;
步骤23,拦截器分析原来的Insert语句,检查待写入的该原始表是否在扩展表定义表(t_mdm_table)中定义了扩展字段,如果定义了扩展字段,进入步骤25,如果没有定义扩展字段,进入步骤24;
步骤24,将原始数据就直接写入原始表;
步骤25,如果定义了扩展字段,首先从扩展存储字段定义表(t_mdm_column)找到定义的扩展字段信息,该些信息包括name,value_num,value_type,value_format等等;
步骤26,根据步骤25的结果,构建向扩展字段数据存储表(t_ext_data)写入数据的sql语句向扩展表写入扩展的字段的值,并执行;
步骤27,将原始表的数据写入原始表;
步骤28,完成此次数据新增流程,返回步骤20,等待下一条数据写入。
图3是应用本发明的方法进行数据修改的处理流程。
基本步骤和图2的新增数据流程类似,详细说明如下:
步骤30,初始化,等待修改数据的操作;
步骤31,向应用程序数据库30中的数据表301中的某张原始表更新一条数据;
步骤32,Mybatis的Update拦截器将更新过程进行拦截;
步骤33,拦截器分析原来的更新(update)语句,检查待更新表是否在扩展表定义表(t_mdm_table)中定义了扩展字段,如果定义了扩展字段,进入步骤35,如果没有定义扩展字段,进入步骤34;
步骤34,将原始数据就直接更新到原始表中;
步骤35,如果定义了扩展字段,首先从扩展存储字段定义表(t_mdm_column)中找到定义的扩展字段信息,该些信息包括name,value_num,value_type,value_format等等;
步骤36,根据步骤35的结果,构建向扩展字段数据存储表(t_ext_data)更新数据的sql语句,并执行;
步骤37,将原始表的数据更新原始表;
步骤38,完成此次数据更新流程,返回步骤30,等待下一条数据更新。
图4是应用本发明的方法进行数据查询时的处理流程。
步骤400,初始化,等待查询数据操作;
步骤401,向应用程序数据库30中的数据表301的某张原始表发出查询请求;
步骤402,Mybatis的查询(Select)拦截器将查询请求进行拦截,进行语法分析,通过Sql语句的from部分找到要查询的应用程序的数据表301;
步骤403,分析完查询语句后,在扩展表定义表(t_mdm_table)中查询是否有扩展字段定义,如果有扩展字段,进入步骤405,如果没有扩展字段,进入步骤404;
步骤404,查询扩展存储字段定义表(t_mdm_column),查询扩展字段具体信息,该些信息包括name,value_num,value_type,value_format;
步骤405,将扩展字段放到原来的查询的select部分语句,即将扩展字段放到查询结果中,在查询应用程序数据表301的数据时,将扩展字段也查询出来;
步骤406,将数据库中除去表1,2,3之外的任意一张原始表和表2扩展字段数据存储表(t_ext_data)采用left join进行数据连接,组装成一个语句;
步骤407,将原来语句的查询条件整合到新的查询语句中;
以上步骤405~407,实则是将原来的语句组装成新语句。
在上述三个步骤中,体现了本发明的创新之处,即对原始的程序没有任何侵入,而自动查询扩展字段。
步骤408,将新的查询语句发送到数据库查询,该新的查询语句为select原始字段,扩展字段from原始表left join t_mdm_data;
步骤409,数据库返回查询结果;
步骤410,将原来查询的扩展属性放入查询结果的extMap属性中,以便提供给应用程序的其他属性。
步骤411,完成此次查询,返回步骤400,等待下一次查询指令。
图5是应用本发明的方法进行多表连接查询时的处理流程。
步骤500,初始化,等待多表连接查询数据操作;
步骤501,向应用程序数据库30中的数据表301的某张原始表发出多表连接查询数据请求;
步骤502,Mybatis的Select拦截器将查询请求进行拦截,进行语法分析,找到要查询的表=查询的目标,这个查询目标是多表连接构建出来的;
步骤503,分析完查询语句后,在t_mdm_table的表1中查询是否有扩展字段定义,如果有扩展字段,进入步骤505,如果没有扩展字段,进入步骤504;
步骤504,查询扩展存储字段定义表(t_mdm_column),查询扩展字段具体信息,该些信息包括name,value_num,value_type,value_format;
步骤505,将扩展字段放到原来的查询的select部分语句,即将扩展字段放到查询结果中,在查询应用程序数据表301的数据时,将扩展字段也查询出来;
在此不同于单表查询之处为,多表中的每张表都要检查,即检查每张表是否有扩展,如果有扩展就加入;
步骤506,将原始表和表2采用left join进行数据连接,组装成一个语句;
步骤507,将原来语句的过滤条件整合到新的查询语句中;
步骤508,将新的查询语句发送到数据库查询;
步骤409,数据库返回查询结果;
步骤510,将原来查询的扩展属性放入查询结果的extMap属性中,以便提供给应用程序的其他属性;
步骤511,完成此次多表连接查询,返回步骤500,等待下一次查询指令。
需要特别说明的是,本发明的方法并不支持以下情况,包括:
第一,子查询,查询嵌套;
第二,存储过程,原因同子查询,数据库中的脚本,即存储过程的执行不经过拦截器;
第三,视图,函数,同样的理由也是不经过拦截器。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

Claims (7)

1.一种基于数据库的动态存储扩展方法,其特征在于,所述方法包括:
步骤一,构建包括扩展表定义表、扩展存储字段定义表和扩展字段数据存储表,等待数据扩展操作;
步骤二,向所述扩展表定义表中的原始表发出数据扩展操作请求;
步骤三,拦截所述数据扩展请求;
步骤四,分析所述数据扩展操作语句,检查所述扩展表定义表中是否有扩展字段,如果包含所述扩展字段,进入步骤六,如果无所述扩展字段,进入步骤五;
步骤五,将原始数据就直接写入原始表;
步骤六,如果包含所述扩展字段,首先从所述扩展存储字段定义表找到定义的扩展字段信息;
步骤七,根据步骤五,构建向所述扩展字段数据存储表进行数据扩展操作的语句,并执行;
步骤八,将所述原始表的数据写入原始表,结束此次数据扩展操作,等待下一个操作。
2.根据权利要求1所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据新增,其中,
所述步骤二的所述数据扩展操作包括写入一条原始数据;
所述步骤三进一步包括,Mybatis的Update拦截器将所述写入过程进行拦截;
所述步骤四进一步包括,所述拦截器分析新增语句;
所述步骤五进一步包括,将所述原始数据直接写入原始表;
所述步骤七进一步包括,构建向所述扩展字段数据存储表写入数据的sql语句;
所述步骤八进一步包括,将所述原始表的数据写入原始表。
3.根据权利要求1所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据修改,其中,
所述步骤二的所述数据扩展操作包括更新一条原始数据;
所述步骤三进一步包括,Mybatis的Update拦截器将所述更新过程进行拦截;
所述步骤四进一步包括,所述拦截器分析更新语句;
所述步骤五进一步包括,将所述原始数据直接更新原始表;
所述步骤七进一步包括,构建向所述扩展字段数据存储表更新数据的sql语句;
所述步骤八进一步包括,将所述原始表的数据更新原始表。
4.根据权利要求1所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括数据查询;
所述步骤二的所述数据扩展操作包括向原始表发出查询请求;
所述步骤三进一步包括,Mybatis的Select拦截器将查询请求进行拦截,进行语法分析,并找到要查询的应用程序的数据表;
所述步骤四进一步包括,所述拦截器分析查询语句;
所述步骤五进一步包括,查询所述扩展存储字段定义表中的查询扩展字段具体信息;
所述步骤六进一步包括,将所述扩展字段放到查询结果中,在查询所述应用程序数据表的数据时也查询所述扩展字段;
所述步骤七进一步包括,将原始表和所述扩展字段数据存储表进行数据连接,组装成一个语句;
所述步骤八进一步包括,
将原来语句的查询条件整合到新的查询语句中;
将新的查询语句发送到数据库查询;
所述数据库查询后返回查询结果,将原来查询的扩展属性放入所述查询结果的extMap属性中。
5.根据权利要求1所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述数据扩展操作包括多表连接数据查询;
所述步骤二的所述数据扩展操作包括向原始表发出查询请求;
所述步骤三进一步包括,Mybatis的Select拦截器将查询请求进行拦截,进行语法分析,并找到要查询的应用程序的数据表,所述数据表是多表连接构建而成;
所述步骤四进一步包括,所述拦截器分析查询语句;
所述步骤五进一步包括,查询所述扩展存储字段定义表中的查询扩展字段具体信息;
所述步骤六进一步包括,将所述扩展字段放到查询结果中,在查询多个所述应用程序数据表的数据时也查询所述扩展字段;
所述步骤七进一步包括,将所述原始表和所述扩展字段数据存储表进行数据连接,组装成一个语句;
所述步骤八进一步包括,
将原来语句的查询条件整合到新的查询语句中;
将新的查询语句发送到数据库查询;
所述数据库查询后返回查询结果,将原来查询的扩展属性放入所述查询结果的extMap属性中。
6.根据权利要求2~5中任一项所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述应用程序中的数据表为原始表,所述应用程序向所述应用程序数据库写入的数据为所述原始数据。
7.根据权利要求6中任一项所述的一种基于数据库的动态存储扩展方法,其特征在于,
所述扩展字段信息包括:
name,value_num,value_type,value_format。
CN201911413841.4A 2019-12-31 2019-12-31 一种基于数据库的动态存储扩展方法 Active CN111241093B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911413841.4A CN111241093B (zh) 2019-12-31 2019-12-31 一种基于数据库的动态存储扩展方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911413841.4A CN111241093B (zh) 2019-12-31 2019-12-31 一种基于数据库的动态存储扩展方法

Publications (2)

Publication Number Publication Date
CN111241093A true CN111241093A (zh) 2020-06-05
CN111241093B CN111241093B (zh) 2021-06-22

Family

ID=70875863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911413841.4A Active CN111241093B (zh) 2019-12-31 2019-12-31 一种基于数据库的动态存储扩展方法

Country Status (1)

Country Link
CN (1) CN111241093B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765176A (zh) * 2021-01-22 2021-05-07 浪潮通用软件有限公司 一种微服务模式下属性扩展方法、装置及存储介质
CN113468180A (zh) * 2021-07-13 2021-10-01 北京明略软件系统有限公司 一种动态扩容数据字段的基于MySQL的表设计方法及系统
CN114237699A (zh) * 2022-02-24 2022-03-25 四川信用通数字科技股份有限公司 一种配置脚本的导出方法、装置及存储介质
WO2024040931A1 (zh) * 2022-08-24 2024-02-29 华为云计算技术有限公司 一种数据管理方法及相关系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617284A (zh) * 2013-12-11 2014-03-05 北京金和软件股份有限公司 一种数据字段扩展方法
CN105930390A (zh) * 2016-04-14 2016-09-07 北京三快在线科技有限公司 关系型数据库扩展方法及关系型数据库扩展系统
WO2016196147A1 (en) * 2015-05-29 2016-12-08 Looker Data Sciences, Inc. Methods and systems for selectively retrieving data to provide a limited dataset for incorporation into a pivot table
CN110489409A (zh) * 2018-09-14 2019-11-22 北京数聚鑫云信息技术有限公司 一种动态扩展数据字段的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617284A (zh) * 2013-12-11 2014-03-05 北京金和软件股份有限公司 一种数据字段扩展方法
WO2016196147A1 (en) * 2015-05-29 2016-12-08 Looker Data Sciences, Inc. Methods and systems for selectively retrieving data to provide a limited dataset for incorporation into a pivot table
CN105930390A (zh) * 2016-04-14 2016-09-07 北京三快在线科技有限公司 关系型数据库扩展方法及关系型数据库扩展系统
CN110489409A (zh) * 2018-09-14 2019-11-22 北京数聚鑫云信息技术有限公司 一种动态扩展数据字段的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765176A (zh) * 2021-01-22 2021-05-07 浪潮通用软件有限公司 一种微服务模式下属性扩展方法、装置及存储介质
CN112765176B (zh) * 2021-01-22 2023-02-03 浪潮通用软件有限公司 一种微服务模式下属性扩展方法、装置及存储介质
CN113468180A (zh) * 2021-07-13 2021-10-01 北京明略软件系统有限公司 一种动态扩容数据字段的基于MySQL的表设计方法及系统
CN114237699A (zh) * 2022-02-24 2022-03-25 四川信用通数字科技股份有限公司 一种配置脚本的导出方法、装置及存储介质
CN114237699B (zh) * 2022-02-24 2022-05-03 四川信用通数字科技股份有限公司 一种配置脚本的导出方法、装置及存储介质
WO2024040931A1 (zh) * 2022-08-24 2024-02-29 华为云计算技术有限公司 一种数据管理方法及相关系统

Also Published As

Publication number Publication date
CN111241093B (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN111241093B (zh) 一种基于数据库的动态存储扩展方法
Hagedorn et al. The STARK framework for spatio-temporal data analytics on spark
US7111025B2 (en) Information retrieval system and method using index ANDing for improving performance
US9483516B2 (en) Multi-version concurrency control across row store and column store
US9471711B2 (en) Schema-less access to stored data
US20140372374A1 (en) Difference determination in a database environment
US9384202B1 (en) Gateway module to access different types of databases
US10706077B2 (en) Performance of distributed databases and database-dependent software applications
US8694525B2 (en) Systems and methods for performing index joins using auto generative queries
CN103425780A (zh) 一种数据的查询方法和装置
US11269880B2 (en) Retroreflective clustered join graph generation for relational database queries
CN110222071A (zh) 一种数据查询方法、装置、服务器及存储介质
CN108334620A (zh) 一种基于orm框架操作集群数据库的方法及装置
Petersohn et al. Flexible rule-based decomposition and metadata independence in modin: a parallel dataframe system
US9141654B2 (en) Executing user-defined function on a plurality of database tuples
Karpisz et al. Selected problems of designing modern industrial databases
CN113761024B (zh) 分布式sql的实时查询方法和系统
US11163766B2 (en) Unique key lookup with additional filter
CN108874873B (zh) 数据查询方法、装置、存储介质及处理器
US9870399B1 (en) Processing column-partitioned data for row-based operations in a database system
CN111078728B (zh) 一种数据库归档模式下跨库查询方法和装置
US20180203896A1 (en) Method and apparatus for processing query
US9824122B2 (en) Requests for source code text
CN112860802A (zh) 数据库操作语句的处理方法、装置及电子设备
CN110147396B (zh) 一种映射关系生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200818

Address after: Room a-b102-1382, No. 198, Qidi Road, economic and Technological Development Zone, Xiaoshan District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Taimei Xingcheng Pharmaceutical Technology Co., Ltd

Address before: 314001 3 / F, building 9, smart industry innovation park, No. 36, Changsheng South Road, Jiaxing Economic and Technological Development Zone, Zhejiang Province

Applicant before: MOBILEMD SYSTEM (JIAXING) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant