CN111984745B - 数据库字段动态扩展方法、装置、设备及存储介质 - Google Patents
数据库字段动态扩展方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111984745B CN111984745B CN202010833297.5A CN202010833297A CN111984745B CN 111984745 B CN111984745 B CN 111984745B CN 202010833297 A CN202010833297 A CN 202010833297A CN 111984745 B CN111984745 B CN 111984745B
- Authority
- CN
- China
- Prior art keywords
- field
- data table
- target
- target field
- relational database
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000010801 machine learning Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003042 antagnostic effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及云存储领域,揭示了一种数据库字段动态扩展方法、装置、设备及存储介质。该方法包括:利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;获取所述待扩展的数据表的主键;获取扩展组件的需求文档;根据所述需求文档的内容确定要扩展的目标字段的字段名称;以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与目标字段对应的数据。本公开还涉及区块链领域,需求文档可存储于区块链中。此方法下,实现了对关系型数据库的字段的高效扩展,从而提供了满足大型项目所需的高效动态扩展字段的能力。
Description
技术领域
本公开涉及云存储技术领域,特别涉及一种数据库字段动态扩展方法、装置、设备及存储介质。
背景技术
Mysql等关系型数据库以其安全可靠、性能卓越、服务稳定等优势在大量项目中有广泛应用。然而,关系型数据库一般都有固定的表结构,在使用关系型数据库时扩展字段是不容易实现的,尤其是在扩展字段的同时避免数据库使用效率下降更加难以实现。目前大型复杂项目往往有多种业务,经常有扩展字段的需求,因此,传统的关系型数据库不方便扩展字段,无法高效快速地扩展字段以满足大型项目的需求。
发明内容
在云存储技术领域,为了解决上述技术问题,本公开的目的在于提供一种数据库字段动态扩展方法、装置、设备及存储介质。
根据本公开的一方面,提供了一种数据库字段动态扩展方法,所述方法包括:
利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;
获取所述待扩展的数据表的主键;
获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;
根据所述需求文档的内容确定要扩展的目标字段的字段名称;
以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
根据本公开的另一方面,提供了一种数据库字段动态扩展装置,所述装置包括:
分析模块,被配置为利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;
第一获取模块,被配置为获取所述待扩展的数据表的主键,其中,所述目标字段为要扩展的字段;
第二获取模块,被配置为获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;
确定模块,被配置为根据所述需求文档的内容确定要扩展的目标字段的字段名称;
创建模块,被配置为以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
根据本公开的另一方面,提供了一种电子设备,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行如前所述的方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开所提供的数据库字段动态扩展方法包括如下步骤:利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;获取所述待扩展的数据表的主键;获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;根据所述需求文档的内容确定要扩展的目标字段的字段名称;以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
此方法下,通过利用机器学习模型确定待扩展的数据表,提高了待扩展的数据表的选择效率;通过根据需求文档字段确定要扩展的字段,提高了要扩展的字段的确定速度,还通过将待扩展的数据表的主键作为唯一字段,为每一要扩展的字段建立扩展数据表,实现了对关系型数据库的字段的高效扩展,使关系型数据库的字段扩展更为方便,从而提供了满足大型项目所需的高效动态扩展字段的能力。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据库字段动态扩展方法的***架构示意图。
图2是根据一示例性实施例示出的一种数据库字段动态扩展方法的流程图。
图3是根据图2对应实施例示出的一实施例的步骤250的细节的流程图。
图4是根据一示例性实施例示出的利用本公开实施例的数据库字段动态扩展方法建立的数据库的表结构的示意图。
图5是根据一示例性实施例示出的一种数据库字段动态扩展装置的框图。
图6是根据一示例性实施例示出的一种实现上述数据库字段动态扩展方法的电子设备示例框图。
图7是根据一示例性实施例示出的一种实现上述数据库字段动态扩展方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种数据库字段动态扩展方法。数据库利用数据表存储数据,通常情况下,数据表中的每一列存储同一类型的数据,数据库的数据表的列可以称为数据库字段,数据库字段扩展即为已有数据表创建对应的新的一列以存储新类型的数据的过程,新的一列可以属于该已有数据表,也可以属于数据库中的其他数据表。本公开提供的数据库字段动态扩展方法可以不依赖于数据库中的固定的表结构,实现字段的高效动态扩展。
本公开的实施终端可以是任何具有运算、处理以及通信功能的设备,该设备可以与外部设备相连,用于接收或者发送数据,具体可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑、PDA(Personal Digital Assistant)等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等,还可以是多个设备的集合,比如云计算的物理基础设施或者服务器集群。
可选地,本公开的实施终端可以为服务器或者云计算的物理基础设施。
图1是根据一示例性实施例示出的一种数据库字段动态扩展方法的***架构示意图。如图1所示,该***架构包括服务器110、用户终端120以及数据库130,服务器110与用户终端120之间、服务器110与数据库130之间均通过通信链路相连,从而可以进行数据的接收和发送,服务器110上部署有机器学习模型和数据库的客户端,数据库130上包括至少一个数据表。以服务器110为本实施例的实施终端,当本公开提供的数据库字段动态扩展方法应用于图1所示的***架构中时,一个具体过程可以是这样的:服务器110从数据库130获取数据表的信息,由在服务器110上运行的机器学习模型对该信息进行分析,从而在数据库130的数据表中确定出待扩展的数据表;然后,服务器110从数据库130获取待扩展的数据表的主键;接着,服务器110从用户终端120获取上传的扩展组件的需求文档;然后,服务器110根据该需求文档的内容确定目标字段的字段名称;最后,服务器110利用数据库的客户端在数据库130上创建与目标字段对应的扩展数据表,并且使待扩展的数据表的主键是该扩展数据表的唯一字段。
值得一提的是,图1仅为本公开的一个实施例。虽然在本实施例中的实施终端为服务器,但在其他实施例中,实施终端可以为如前所述的各种终端或设备;虽然在本实施例中,数据库和本公开的实施终端位于不同的终端上,但在其他实施例或者具体应用中,数据库和本公开的实施终端可以位于同一终端上,即数据库程序和机器学习模型可以部署在同一终端上,数据库程序和数据库的客户端也可以部署在同一终端上;虽然在本实施例中,需求文档是从用户终端获得的,但在其他实施例中,需求文档可以从本地获得,也可以从区块链上获得,本公开对此不作任何限定,本公开的保护范围也不应因此而受到任何限制。
图2是根据一示例性实施例示出的一种数据库字段动态扩展方法的流程图。本实施例提供的数据库字段动态扩展方法可以由服务器执行,如图2所示,包括以下步骤:
步骤210,利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表。
目标***与关系型数据库相关联是指,目标***运行所产生的数据可以输入至关系型数据库中,目标***也可以接收关系型数据库返回的数据。
在一个实施例中,所述关系型数据库为Mysql数据库或者Oracle数据库。
可以事先利用多个数据表和其中应当扩展的数据表的相关信息或者数据进行机器学习模型的训练,从而得到训练好的机器学习模型。利用训练好的机器学习模型即可在多个数据表中找出适合扩展的数据表,从而提高效率,降低人力成本。
此处的机器学习模型可以是基于各种算法或者模型而构建的模型,可以包括一种或多种算法或者模型,比如,可以基于决策树算法、神经网络模型、对抗式生成网络模型等基本算法或模型构建得到机器学习模型。
在一个实施例中,所述利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表,包括:
利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,得到由所述机器学习模型输出的多个候选数据表;
将所述多个候选数据表发送至用户端,以供所述用户端的用户进行选择;
将从所述用户端返回的由用户选择的候选数据表作为待扩展的数据表。
由于机器学习模型可能存在一定的误差,导致其输出结果并不一定可靠和合理。在本实施例中,通过先由机器学习模型筛选出若干个候选数据表,然后将候选数据表发送至用户端,由用户在候选数据表中选出待扩展的数据表,从而在保证选择待扩展的数据表的效率的同时,提高了选择出的待扩展的数据表的合理性和准确性。
步骤220,获取所述待扩展的数据表的主键。
主键的值可以用于唯一的标识数据表中的某一条记录。
步骤230,获取扩展组件的需求文档。
所述扩展组件用于对所述目标***进行功能扩展。
扩展组件可以与目标***进行协同运行,相互之间可以发送数据,扩展组件可以实现目标***所不具备的功能,扩展组件和目标***之间的通信可以通过接口来实现。
需求文档中记录了所要实现的功能点的详细信息,通常包括文字信息,这对于程序开发具有指导作用。
需要强调的是,为进一步保证上述扩展组件的需求文档的私密和安全性,上述需求文档还可以存储于一区块链的节点中,即本公开的实施终端从区块链获取扩展组件的需求文档。
步骤240,根据所述需求文档的内容确定要扩展的目标字段的字段名称。
由于扩展组件通常是新扩增的业务,因此,有必要为新扩增的业务动态扩展自动以满足新的查询需求,这个过程通过计算机设备自动完成,因而可以提高了要扩展的字段的确定速度。
如前所述,数据库字段扩展即为已有数据表创建对应的新的一列以存储新类型的数据的过程,而要扩展的目标字段的字段名称即为要创建的新的一列的名称。
可以利用各种方式来根据所述需求文档的内容确定要扩展的目标字段的字段名称,包括但不限于:利用自然语言处理模型等人工智能模型对需求文档的内容进行识别来确定目标字段的字段名称;还可以利用特定的预设规则来确定目标字段的字段名称;还可以通过查表的方式,根据需求文档中的关键词查找对应的字段名称。
步骤250,以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
由于在与所述目标字段对应的扩展数据表中,主键为唯一字段,因此在该扩展数据表中,主键与属于目标字段的数据唯一对应。
图4是根据一示例性实施例示出的利用本公开实施例的数据库字段动态扩展方法建立的数据库的表结构的示意图。如图4所示,待扩展的数据表为用户表,每当新增或扩展一个目标字段,将新建与该目标字段对应的扩展数据表,并在该扩展数据表中以用户表中的主键为唯一字段。比如,在图4中,基于用户表扩展了ext_sex这一用于存储性别数据的目标字段和ext_age这一用于存储年龄数据的目标字段,为这两个目标字段分别建立了对应的扩展数据表,分别为性别表和年龄表,在性别表和年龄表中,user_id均为唯一字段,用户表中的id这一主键与性别表和年龄表中的user_id这一唯一字段是一致的。当然,在此基础上,还可以扩展其他的与用户表中的id有关的字段。如此,便实现了对用户表进行动态的字段扩展。
步骤250的具体步骤可以如图3所示。图3是根据图2对应实施例示出的一实施例的步骤250的细节的流程图,如图3所示,步骤250具体可以包括以下步骤:
步骤250',以所述主键为唯一字段,以包括所述目标字段的字段名称的字符串为表名,在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
在本实施例中,目标字段的字段名称为字符串,与目标字段对应的扩展数据表的表名可以为目标字段的字段名称本身,还可以一种更长的字符串,即目标字段的字段名称这一字符串是该更长的字符串中的一部分。
在一个实施例中,所述以所述主键为唯一字段,以包括所述目标字段的字段名称的字符串为表名,在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,以由所述目标字段的字段名称和预设字符串组成的字符串为表名,在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
比如,扩展数据表的表名可以为“ext_字段名”。
比如,对于Mysql数据库,可以通过如下sql语句创建以ext_sex为表名的扩展数据表,以如下sql语句所创建的扩展数据表的表结构可以与图4实施例示出的性别表保持一致。
CREATE TABLE`ext_sex`(`user_id`varchar(32)NOT NULL COMMENT'用户ID',`ext_sex`tinyint(1)NOT NULL DEFAULT'0'COMMENT'性别:0未知、1男、2女',UNIQUE KEY`un_ext_sex`(`ext_sex`))ENGINE=InnoDB DEFAULTCHARSET=utf8mb4 COMMENT='性别扩展属性表';
在上面的sql语句中,创建的扩展数据表中有“user_id”和“ext_sex”两个字段,其中,“user_id”这一字段的数据类型为varchar(32),属性为NOTNULL,添加的注释为'用户ID',而“ext_sex”这一字段的数据类型为tinyint(1),属性为NOT NULL,默认值为0,添加的注释为'性别:0未知、1男、2女',此外还将ext_sex设置为该扩展数据表的唯一键(uniquekey),即唯一索引;另外,通过该sql语句,还将存储引擎设置为InnoDB,编码设置为utf8mb4,并为创建的扩展数据表添加的注释为“性别扩展属性表”。
在一个实施例中,所述需求文档存储于区块链中,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键作为与数据表的记录唯一对应的主键或外键,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
数据表的记录亦可以称为元组或者一行,主键或外键与数据表的记录唯一对应是指各项主键或外键的值与数据表的记录分别一一对应。
当创建的与所述目标字段对应的扩展数据表以所述主键为外键时,待扩展的数据表为主表,创建的该扩展数据表为从表。
在一个实施例中,在以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据之前,所述方法还包括:
判断所述关系型数据库中是否存在与所述目标字段对应的扩展数据表,其中,以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据是在所述关系型数据库中不存在与所述目标字段对应的扩展数据表的情况下进行的。
在本实施例中,通过在创建与目标字段对应的扩展数据表之前,判断关系型数据库中是否存在与目标字段对应的扩展数据表,并在不存在与目标字段对应的扩展数据表的情况下才执行创建与目标字段对应的扩展数据表的步骤,从而避免了扩展数据表的重复创建,可以防止关系型数据库中扩展数据表组织混乱。
在一个实施例中,所述判断所述关系型数据库中是否存在与所述目标字段对应的扩展数据表,包括:
获取要创建的扩展数据表的表名,作为目标表名;
判断所述关系型数据库中是否存在表名与所述目标表名一致的数据表;
如果是,则确认所述关系型数据库中存在与所述目标字段对应的扩展数据表,否则,确认所述关系型数据库中不存在与所述目标字段对应的扩展数据表。
比如,对于Mysql数据库,可以通过执行如下sql语句,得到对应的查询结果。
select count(1)from information_schema.TABLES t where t.TABLE_SCHEMA='userplatform'and t.TABLE_NAME='ext_sex'。
通过执行上述sql语句,若查询结果大于0,则判断关系型数据库中存在与所述目标字段对应的扩展数据表,反之,则判断关系型数据库中不存在与所述目标字段对应的扩展数据表。具体来说,上述的sql语句便是在Mysql的information_schema数据表中查询数据库名为userplatform且表名为ext_sex的行数,从而判断关系型数据库中是否存在与目标字段对应的扩展数据表。
在一个实施例中,在以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据之后,所述方法还包括:
向所述扩展数据表***与所述目标字段对应的数据。
在本实施例中,不仅创建了与目标字段对应的扩展数据表,还实现了向该扩展数据表***数据。
比如,可以通过如下sql语句向名称为ext_sex的扩展数据表***与ext_sex这一目标字段对应的属性数据。
insert into`ext_sex`(`user_id`,`ext_sex`)values(`1`,`1`);
在上面的sql语句中,向扩展数据表***一条记录数据,在该记录数据中与“user_id”和“ext_sex”这两个字段分别对应的数据值为1和1。
在一个实施例中,在向所述扩展数据表***与所述目标字段对应的数据之后,所述方法还包括:
将所述待扩展的数据表与所述扩展数据表联接,以查询同时与所述目标字段及所述待扩展的数据表相关联的数据。
比如,可以通过如下sql语句联接名称为ext_sex的扩展数据表来进行筛选操作。
select id,user_name,ext_sex from t_user inner join ext_sex on id=user_id where ext_sex=2。
在上述sql语句中,假设待扩展的数据表的表名为t_user,扩展数据表的表名为ext_sex,t_user表中包括id字段和user_name字段,而ext_sex表中包括user_id字段和ext_sex字段,t_user表中的id字段为主键,它指向ext_sex表中的user_id字段。
通过上述sql语句,利用内连接(inner join)将ext_sex表和t_user表联接,然后,在联接得到的记录集中取出ext_sex=2的记录中id、user_name、ext_sex这三个字段对应的数据。
在一个实施例中,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,并为所述扩展数据表创建索引,以存储与所述目标字段对应的数据。
在本实施例中,通过为扩展数据表创建索引,使得数据库能够更快的定位到数据并筛选出对应结果,从而提高了查询效率。
在一个实施例中,所述索引为复合索引。
复合索引为利用数据表的多个列建立的索引。在本实施例中,由于使用了复合索引,因此可以进一步提高查询效率,并降低计算开销。
在一个实施例中,所述目标字段为多个目标字段,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,针对每一目标字段,基于该目标字段的字段名称在所述关系型数据库创建与该目标字段对应的扩展数据表,以存储与该目标字段对应的数据。
在本实施例中的数据库字段扩展方法能够为数据库中的数据表轻易实现多个目标字段的扩展,并能使在对这些目标字段对应数据进行查询时依然保持高效,因此能够满足大型项目的复杂性业务需要。
综上所述,根据图2实施例提供的数据库字段扩展方法,通过利用机器学习模型确定待扩展的数据表,提高了待扩展的数据表的选择效率;通过根据需求文档字段确定要扩展的字段,提高了要扩展的字段的确定速度,还通过将待扩展的数据表的主键作为唯一字段,为每一要扩展的字段建立扩展数据表,实现了对关系型数据库的字段的高效扩展,使关系型数据库的字段扩展更为方便,从而提供了满足大型项目所需的高效动态扩展字段的能力。
本公开还提供了一种数据库字段动态扩展装置,以下是本公开的装置实施例。
图5是根据一示例性实施例示出的一种数据库字段动态扩展装置的框图。如图5所示,装置500包括:
分析模块510,被配置为利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;
第一获取模块520,被配置为获取所述待扩展的数据表的主键,其中,所述目标字段为要扩展的字段;
第二获取模块530,被配置为获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;
确定模块540,被配置为根据所述需求文档的内容确定要扩展的目标字段的字段名称;
创建模块550,被配置为以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
根据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同***组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行,比如与显示单元640通信。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品或计算机程序指令。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,示出了计算机可读存储介质700,它可以存储根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码或计算机程序指令,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (8)
1.一种数据库字段动态扩展方法,其特征在于,所述方法包括:
利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;
获取所述待扩展的数据表的主键;
获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;
根据所述需求文档的内容确定要扩展的目标字段的字段名称;
获取要创建的扩展数据表的表名,作为目标表名;
判断所述关系型数据库中是否存在表名与所述目标表名一致的数据表;
如果是,则确认所述关系型数据库中存在与所述目标字段对应的扩展数据表,否则,确认所述关系型数据库中不存在与所述目标字段对应的扩展数据表;
在所述关系型数据库中不存在与所述目标字段对应的扩展数据表的情况下,以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据;
向所述扩展数据表***与所述目标字段对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,以包括所述目标字段的字段名称的字符串为表名,在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
3.根据权利要求1所述的方法,其特征在于,所述需求文档存储于区块链中,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键作为与数据表的记录唯一对应的主键或外键,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据。
4.根据权利要求1所述的方法,其特征在于,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,并为所述扩展数据表创建索引,以存储与所述目标字段对应的数据。
5.根据权利要求1所述的方法,其特征在于,所述目标字段为多个目标字段,所述以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据,包括:
以所述主键为唯一字段,针对每一目标字段,基于该目标字段的字段名称在所述关系型数据库创建与该目标字段对应的扩展数据表,以存储与该目标字段对应的数据。
6.一种数据库字段动态扩展装置,其特征在于,所述装置包括:
分析模块,被配置为利用机器学习模型对目标***所关联的关系型数据库的数据表进行分析,以在所述关系型数据库的数据表中确定出待扩展的数据表;
第一获取模块,被配置为获取所述待扩展的数据表的主键;
第二获取模块,被配置为获取扩展组件的需求文档,所述扩展组件用于对所述目标***进行功能扩展;
确定模块,被配置为根据所述需求文档的内容确定要扩展的目标字段的字段名称;
所述装置还用于:获取要创建的扩展数据表的表名,作为目标表名;判断所述关系型数据库中是否存在表名与所述目标表名一致的数据表;如果是,则确认所述关系型数据库中存在与所述目标字段对应的扩展数据表,否则,确认所述关系型数据库中不存在与所述目标字段对应的扩展数据表;
创建模块,被配置为在所述关系型数据库中不存在与所述目标字段对应的扩展数据表的情况下,以所述主键为唯一字段,基于所述目标字段的字段名称在所述关系型数据库创建与所述目标字段对应的扩展数据表,以存储与所述目标字段对应的数据;
所述装置还用于:向所述扩展数据表***与所述目标字段对应的数据。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833297.5A CN111984745B (zh) | 2020-08-18 | 2020-08-18 | 数据库字段动态扩展方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010833297.5A CN111984745B (zh) | 2020-08-18 | 2020-08-18 | 数据库字段动态扩展方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984745A CN111984745A (zh) | 2020-11-24 |
CN111984745B true CN111984745B (zh) | 2024-04-16 |
Family
ID=73435581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010833297.5A Active CN111984745B (zh) | 2020-08-18 | 2020-08-18 | 数据库字段动态扩展方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984745B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765176B (zh) * | 2021-01-22 | 2023-02-03 | 浪潮通用软件有限公司 | 一种微服务模式下属性扩展方法、装置及存储介质 |
CN114398379B (zh) * | 2021-11-29 | 2024-03-01 | 平安科技(深圳)有限公司 | 一种数据更新方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930390A (zh) * | 2016-04-14 | 2016-09-07 | 北京三快在线科技有限公司 | 关系型数据库扩展方法及关系型数据库扩展*** |
CN108984620A (zh) * | 2018-06-14 | 2018-12-11 | 中国科学院重庆绿色智能技术研究院 | 一种动态可扩展的关系型数据库及其设计方法 |
CN111435347A (zh) * | 2019-01-14 | 2020-07-21 | 叶常青 | 数据库中关系表的高效扩展方法和*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202441A (zh) * | 2016-07-13 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 基于关系型数据库的数据处理方法、装置和*** |
CN110032604B (zh) * | 2019-02-02 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 数据存储装置、转译装置及数据库访问方法 |
-
2020
- 2020-08-18 CN CN202010833297.5A patent/CN111984745B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930390A (zh) * | 2016-04-14 | 2016-09-07 | 北京三快在线科技有限公司 | 关系型数据库扩展方法及关系型数据库扩展*** |
CN108984620A (zh) * | 2018-06-14 | 2018-12-11 | 中国科学院重庆绿色智能技术研究院 | 一种动态可扩展的关系型数据库及其设计方法 |
CN111435347A (zh) * | 2019-01-14 | 2020-07-21 | 叶常青 | 数据库中关系表的高效扩展方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN111984745A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shvaiko et al. | Ontology matching: state of the art and future challenges | |
US9971967B2 (en) | Generating a superset of question/answer action paths based on dynamically generated type sets | |
US9026901B2 (en) | Viewing annotations across multiple applications | |
US9607061B2 (en) | Using views of subsets of nodes of a schema to generate data transformation jobs to transform input files in first data formats to output files in second data formats | |
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
CN108897874B (zh) | 用于处理数据的方法和装置 | |
TW200903324A (en) | Systems and methods for modeling partitioned tables as logical indexes | |
CN112000773B (zh) | 基于搜索引擎技术的数据关联关系挖掘方法及应用 | |
US9569485B2 (en) | Optimizing database query | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
CN116244387A (zh) | 实体关系构建方法、装置、电子设备及存储介质 | |
CN112582073B (zh) | 医疗信息获取方法、装置、电子设备和介质 | |
CN104598485A (zh) | 处理数据库表的方法和设备 | |
WO2024036662A1 (zh) | 一种基于数据采样的并行图规则挖掘方法及装置 | |
US9201937B2 (en) | Rapid provisioning of information for business analytics | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN113127496B (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
US10394761B1 (en) | Systems and methods for analyzing and storing network relationships | |
CN114519071A (zh) | 规则匹配模型的生成方法、匹配方法、***、设备和介质 | |
CN112988778A (zh) | 一种处理数据库查询脚本的方法和装置 | |
Čerešňák et al. | Improvement of Data Searching in MongoDB with the Use of Oracle Database | |
CN109710673B (zh) | 作品处理方法、装置、设备和介质 | |
CN111159218B (zh) | 数据处理方法、装置及可读存储介质 | |
Xia et al. | A novel data schema integration framework for the human-centric services in smart city |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |