CN110909003A - 一种创建数据表的方法及计算设备 - Google Patents
一种创建数据表的方法及计算设备 Download PDFInfo
- Publication number
- CN110909003A CN110909003A CN201911166529.XA CN201911166529A CN110909003A CN 110909003 A CN110909003 A CN 110909003A CN 201911166529 A CN201911166529 A CN 201911166529A CN 110909003 A CN110909003 A CN 110909003A
- Authority
- CN
- China
- Prior art keywords
- field
- field information
- information
- name
- configuration
- 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
Links
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种创建数据表的方法及计算设备,适于为数据库新创建一张目标数据表,且数据库已经建立有多张数据表,所述方法包括:将所述多张数据表的字段信息汇总为字段信息表,所述字段信息表中每条字段信息具有唯一的字段标识,且每条字段信息的英文字段名具有备注的中文字段名;建立数据表与字段信息表中字段信息之间的关联表;基于所述字段信息表和关联表生成缓存表,所述缓存表的每个表项是中文字段名与字段信息的关联关系,且在所述关联关系中,所述字段信息是在所述多张数据表中具有该中文字段名的、使用次数最多的字段信息;基于所述缓存表和字段信息表,生成字段信息集合;基于所述字段信息集合创建目标数据表。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种创建数据表的方法及计算设备。
背景技术
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为数据表(table),一组数据表组成了数据库(database)。
创建数据表是一个数据库系统经常需要用到的,且必不可少。但就目前而言,界面化的创建数据表的方式往往是先添加一个字段,再给字段填写相应的信息,最后根据这些信息生成sql语言创建成表。这个过程相当的杂,并且以这种人工录入的方式创建出来的表可能出现以下问题:
1、字段命名不够规范;
2、多表之间有关联的字段的字段类型信息不统一,这可能给后续的查询操作增加多余的负担,导致查询效率降低。
因此,如何快速并规范化的为数据库创建数据表,就成为亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的创建数据表的方法及计算设备。
根据本发明的一个方面,提供了一种创建数据表的方法,在计算设备中执行,适于为数据库新创建一张目标数据表,且所述数据库已经建立有多张数据表,所述方法包括:
将所述多张数据表的字段信息汇总为字段信息表,所述字段信息表中每条字段信息具有唯一的字段标识,且每条字段信息的英文字段名具有备注的中文字段名;
建立数据表与字段信息表中字段信息之间的关联表,所述关联表的每个表项是数据表标识与该数据表的所有字段分别对应的字段标识的关联关系;
基于所述字段信息表和关联表生成缓存表,所述缓存表的每个表项是中文字段名与字段信息的关联关系,且在所述关联关系中,所述字段信息是在所述多张数据表中具有该中文字段名的、使用次数最多的字段信息;
基于所述缓存表和字段信息表,生成字段信息集合;
基于所述字段信息集合创建所述目标数据表。
可选地,根据本发明的创建数据表的方法,其中,所述基于所述字段信息表和关联表生成缓存表,包括:对于数据库中的每个中文字段名,从字段信息表中获取具有该中文字段名的所有字段信息对应的字段标识集合;对于所述字段标识集合中的每个字段标识,统计该字段标识在所述关联表中的出现次数;将该中文字段名与出现次数最多的字段标识对应的字段信息,相关联的存储到所述缓存表中。
可选地,根据本发明的创建数据表的方法,其中,所述基于所述缓存表和字段信息表,生成字段信息集合,包括:接收客户端上传的模板文件,所述模板文件包括多个字段配置,每个字段配置对应于所述目标数据表的一个字段,且每个所述字段配置至少包括中文字段名;对于每个所述字段配置,根据中文字段名从所述缓存表中检索关联的字段信息;当未检索到关联的字段信息时,将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息;当检索到关联的字段信息时,若该字段配置仅包括中文字段名,则将检索到的字段信息返回给客户端,若该字段配置还包括其他信息,则判断该字段信息是否与该字段配置匹配,若匹配,将该字段信息返回给客户端,若不匹配,则从字段信息表中获取使用该字段配置次数最多的字段信息,并将使用次数最多的字段信息返回给客户端;客户端将补全的字段信息以及计算设备返回的字段信息,构建为字段信息集合上传给计算设备。
可选地,根据本发明的创建数据表的方法,其中,所述从字段信息表中获取使用该字段配置次数最多的字段信息,包括:从字段信息表中获取具有该字段配置的所有字段信息对应的字段标识集合;对于所述字段标识集合中的每个字段标识,统计该字段标识在所述关联表中的出现次数;将出现次数最多的字段标识对应的字段信息,确定为使用该字段配置次数最多的字段信息。
可选地,根据本发明的创建数据表的方法,其中,若字段信息表中不存在使用该字段配置的字段信息,则将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息。
可选地,根据本发明的创建数据表的方法,还包括:
当客户端接收到计算设备返回的字段信息时,接受用户对该字段信息的更改;和/或,将字段配置或者字段信息返回给客户端时,一并返回与该字段配置或者字段信息具有相同中文字段名的其他字段信息,以便客户端将其展示给用户。
可选地,根据本发明的创建数据表的方法,还包括:在创建所述目标数据表之后,对所述缓存表、字段信息表和关联表进行更新。
可选地,根据本发明的创建数据表的方法,其中,所述对所述缓存表、字段信息表和关联表进行更新,包括:对于所述字段信息集合中的任一字段信息,将该字段信息与目标数据表的关联关系添加到所述关联表中,并在该字段信息不存在于所述字段信息表时,则将其添加到所述字段信息表中;获取该字段信息中的中文字段名,判断该字段信息是否与缓存表中与该中文字段名关联的字段信息一致,如果不一致,则获取字段信息表中具有该中文字段名的、使用次数最多的字段信息,将该中文字段名以及获取的字段信息刷新到所述缓存表中。
根据本发明的另一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行上述方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述的方法。
根据本发明的创建数据表的方案,采用模板文件导入方式代替传统的手动添加字段信息,提高了创建数据表的效率;根据上传的字段配置,默认利用使用最广的适配字段补全缺失的字段信息,这样带来的好处为:使得多数据表之间的相同字段规格统一,命名一致,在最终多表关联查询数据时效率得到提升。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例的创建数据表的系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的结构图;
图3示出了根据本发明一个实施例的创建数据表的方法300的流程图;
图4示出了本发明实施例中横向模板的示意图;
图5示出了本发明实施例中纵向模板的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例的创建数据表的系统100的示意图。如图1所示,系统100包括一个或多个客户端110(图中示出了3个)以及服务端120,客户端110经由互联网与服务端120进行通信。客户端110可以为浏览器或者页面应用(webapp),并驻留在计算设备中,能够在计算设备的显示屏上呈现页面。具体地,客户端110可以访问服务端120的创建数据表服务的网络地址,从服务端120下载空白的模板文件(例如excel文件),用户在空白的模板文件中输入与待创建的目标数据表对应的多个字段配置后,由客户端110将模板文件发送到服务端120。
服务端120与数据库系统连接,数据库中包括多张已经建立的数据表。服务端120根据数据库中已经建立的多张数据表,可以建立相应的字段信息表、数据表与字段信息表中字段信息之间的关联表、以及缓存表。具体地,将多张数据表的字段信息进行汇总得到字段信息表,字段信息表中每条字段信息具有唯一的字段标识,且每条字段信息的英文字段名具有备注的中文字段名;关联表的每个表项是数据表标识与该数据表的所有字段分别对应的字段标识的关联关系;基于字段信息表和关联表能够生成缓存表,缓存表的每个表项是中文字段名与字段信息的关联关系,且在所述关联关系中,所述字段信息是在所述多张数据表中具有该中文字段名的、使用次数最多的字段信息。
服务端120接收到客户端110发送的模板文件后,对模板文件进行解析,得到多个字段配置,对于每个字段配置,从缓存表和字段信息表中匹配对应的字段信息,并将匹配到的字段信息返回给客户端110。如果未匹配到字段信息,直接将字段配置返回给客户端110。在客户端110中,用户可以对服务端120返回的字段配置进行补全,得到完整的字段信息,或者,对服务端120返回的字段信息进行修改。然后,客户端110将各字段信息构造为字段信息集合,发送到服务端120,服务端120基于该字段信息集合,创建目标数据表。
本发明实施例还提供一种构建数据表的方法,该方法在本发明实施例提供的服务端120执行,服务端120可以实现为如下所述的计算设备200。
图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备200可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等。在根据本发明的实施例中,服务端的计算设备200被配置为执行根据本发明的创建数据表的方法300。计算设备200的应用222中包含执行根据本发明的方法300的多条程序指令。
图3示出了根据本发明一个实施例的创建数据表的方法300的流程图,方法300适于在计算设备中执行,例如,在如图1所示的服务端120执行。如前所述,服务端120一方面与客户端110连接,另一方面与数据库系统连接,数据库中包括多张已经建立的数据表。方法300适于为数据库新创建一张目标数据表,具体地,可以通过服务端120与客户端110的交互来创建目标数据表。
数据表一般会包括多个字段,每个字段具有对应的字段信息(字段属性信息),例如字段名称、字段数据类型、字段长度、字段备注、默认值等。在本发明实施例中,数据库中的数据表的各字段的字段名称采用英文名称,称之为英文字段名。为了便于用户了解各字段的含义,还在字段备注中备注与英文名称对应的中文名称,称之为中文字段名。
按照现有技术中的创建数据表的方案,每个字段的字段信息需要建表人员逐一手工添加,而且业务人员给建表人员的基本信息往往只有中文字段名,需要由建表人员将其规范化为英文字段名,导致建表效率低,并且字段信息有可能不够规范。
根据本发明实施例的创建数据表的方法300,字段基本信息无需建表人员一个一个添加,可以将待创建的目标数据表各字段的部分信息添加至模板文件中,之后再上传文件至服务器,由服务器解析该文件获取字段的基本信息。在本发明实施例中,对于目标数据表的任一字段,用户添加到模板文件中的关于该字段的字段信息通常不是完整的字段信息,例如,只有中文字段名,或者只有中文字段名和英文字段名,或者是中文字段名以及其他信息,当然,对于部分字段,用户也有可能输入的是完整的字段信息。为便于描述,本文中将用户输入到模板文件中的完整的或不完整的字段信息称为字段配置,且每个字段配置至少具有中文字段名。
参照图3,方法300始于步骤S302。在步骤S302中,将数据库中已有的多张数据表的字段信息汇总为字段信息表。
方法300适于为数据库新创建一张数据表,称之为目标数据表。对数据库中已有的数据表的字段信息进行汇总,可以得到一字段信息表。字段信息表中包括多个字段信息,每个字段信息可以包括:字段标识(字段ID)、英文字段名、备注的中文字段名、字段类型、字段长度、小数点、是否非空、默认值。其中,字段ID是字段信息表的主键,即字段信息表中每条字段信息的字段ID是唯一的。
对数据库中已有的数据表的字段信息进行汇总的过程可以包括:
遍历数据库中的每张数据表:
对于遍历到的数据表,遍历该数据表的每个字段:
对于遍历到的字段,判断该字段的字段信息是否存在于字段信息表中,若是,执行下一个字段的遍历,若否,为该字段信息添加一个唯一的字段ID后,写入到字段信息表中,并执行下一个字段的遍历。
在步骤S304中,建立数据表与字段信息表中字段信息之间的关联表,其中,关联表包括多个表项,每个表项是数据表标识与该数据表的所有字段分别对应的字段标识的关联关系。
也就是说,数据库中的每张数据表对应关联表中的一个不同表项,关联表的每个表项是一个一对多关系。例如,数据表具有N个字段,则每个字段的字段信息分别对应字段信息表的一条记录,N个字段对应字段信息表的N条记录,获取这N条记录中的字段标识,则该数据表在关联表中的表项为:数据表标识与之N个字段标识的对应关系。
在步骤S306中,基于字段信息表和关联表生成缓存表,缓存表包括多个表项,每个表项是中文字段名与字段信息的关联关系,即每个表项是一个键-值(key-value)对,key为中文字段名,value为字段信息。并且,在所述关联关系中,所述字段信息是在数据库的所有数据表中具有该中文字段名的、使用次数最多的字段信息。缓存表例如可以存储在Redis中。
创建缓存表的具体过程可以包括:
1)对于数据库中的每个中文字段名,从字段信息表中获取具有该中文字段名的所有字段信息对应的字段标识集合;
数据库包括多张数据表,每张数据表包括多个字段,每个字段具有中文字段名,多种数据表中可能存在重复的中文字段名。本步骤中,可以统计出数据库中所有数据表所使用的所有中文字段名,得到一个中文字段名集合。对于中文字段名集合中的每个中文字段名,通过对字段信息表进行检索,就可以获取到包括了该中文字段名的所有字段信息,获取这些字段信息各自的字段标识,构成字段标识集合。
2)对于所述字段标识集合中的每个字段标识,统计该字段标识在所述关联表中的出现次数;
3)将该中文字段名与出现次数最多的字段标识对应的字段信息,相关联的存储到所述缓存表中。
在步骤S308中,基于所述缓存表和字段信息表,生成字段信息集合。具体可以包括:
1)接收客户端上传的模板文件,模板文件包括多个字段配置,每个字段配置对应于目标数据表的一个字段,且每个字段配置至少包括中文字段名。
客户端可以从服务端下载空白模板文件例如空白excel表格,由用户在空白模板文件中填入目标数据表的字段配置。假设目标数据表有M个字段,则每个字段对应一个字段配置,填写好的模板文件中则包括M个字段配置。如前所述,字段配置通常是不完整的字段信息,但字段配置中至少应当包括中文字段名。在一些情况下,如果用户对某个字段有明确的需求,则该字段对应的字段配置也可以是完整的字段信息。
2)解析模板文件,对于解析到的每个字段配置,根据该字段配置中的中文字段名从缓存表中检索关联的字段信息。
3)当未检索到关联的字段信息时,将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息。
4)当检索到关联的字段信息时,若该字段配置仅包括中文字段名,则将检索到的字段信息返回给客户端;若该字段配置除了中文字段名之外,还包括其他信息,例如英文字段名、字段类型等,则判断检索到的字段信息是否与该字段配置匹配,若匹配,将该字段信息返回给客户端,若不匹配,则从字段信息表中获取使用该字段配置次数最多的字段信息,并将使用次数最多的字段信息返回给客户端。
这里,判断检索到的字段信息是否与该字段配置匹配是指,该字段信息是否包括该字段配置的全部内容。
在一种实现方式中,从字段信息表中获取使用该字段配置次数最多的字段信息,可以包括:从字段信息表中获取具有该字段配置的所有字段信息对应的字段标识集合;对于字段标识集合中的每个字段标识,统计该字段标识在关联表中的出现次数;将出现次数最多的字段标识对应的字段信息,确定为使用该字段配置次数最多的字段信息。
当然,若字段信息表中不存在使用该字段配置的字段信息,则直接将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息。
5)客户端将补全的字段信息以及计算设备返回的字段信息,构建为字段信息集合上传给计算设备。
服务端对模板文件中的所有字段配置处理完毕后,根据上述的描述,对于某个字段配置,有可能向客户端返回对应于该字段配置的(完整的)字段信息,该字段信息有可能是缓存表中的字段信息,也有可能是字段信息表中的字段信息;也有可能向客户端返回的是未经更改的字段配置。
客户端接收到服务端返回的字段配置时,用户可以对该字段配置补全为字段信息。另外,当客户端接收到服务端返回的字段信息时,用户可以不对该字段信息进行更改,当然,用户也可以对该字段信息根据具体的需要进行更改。然后,将所有字段信息构建为一个字段信息集合,上传给服务端的计算设备。
另外,服务端在将字段配置或者字段信息返回给客户端时,还可以查询关联表后,一并返回与该字段配置或者字段信息具有相同中文字段名的其他字段信息,进一步,还可以返回使用其他字段信息的数据表信息,即哪些数据表的哪些字段也具有该中文字段名,以便客户端将其展示给用户,供用户在补全字段配置或者修改字段信息时参考。
在步骤S310中,服务端接收到客户端上传的字段信息集合后,基于该字段信息集合创建目标数据表。需要说明的是,当一张数据表的所有字段的字段信息都完整后,如何根据这些字段信息创建数据表,是本领域技术人员所熟知的,例如,基于字段信息集合来构造建表SQL语句,通过建表SQL语句在数据库中创建一张新的数据表。本发明实施例对具体的建表语句不做限制。
在一种实现方式中,在创建所述目标数据表之后,还可以对缓存表、字段信息表和关联表进行更新,具体可以包括:
1)对于给目标数据表的字段信息集合,遍历该字段信息集合中字段信息,对于遍历到的字段信息,判断该字段信息是否存在于字段信息表中。
2)若该字段信息不存在于字段信息表时,则为该字段信息设置一字段标识,将设置好字段标识后的该字段信息添加到字段信息表中;若该字段信息存在于字段信息表时,不需要再次添加。
3)将该字段信息与目标数据表的关联关系添加到关联表中,即,将该字段信息的字段标识与目标数据表的数据表标识相关联的添加到关联表中。
4)获取该字段信息中的中文字段名,判断该字段信息是否与缓存表中与该中文字段名关联的字段信息一致,如果一致,不需要对缓存表进行更新;如果不一致,则获取字段信息表中具有该中文字段名的、使用次数最多的字段信息,将该中文字段名以及获取的字段信息刷新到缓存表中,当然如果使用次数最多的字段信息已经存在于缓存表中,也不需要对缓存表进行更新。
以下给出本发明的一个应用实例。
用户在浏览器端选择要使用的字段信息录入表的模板(excel空表格),模板主要分为两种:一是横向模板:只包含中文字段名。二是纵向模板:包括正文字段名、英文字段名、字段类型、字段长度等信息,其中中文字段名为必填信息。当用户选择横向模板时,只需要在exce l文件的第一行录入中文字段名,如图4所示,纵向模板则需要更多的信息,纵向模板格式如图5所示。
用户在填完相应的信息后,需要选择要上传的模板文件的类型,即横向模板或纵向模板,将字段配置填写到模板文件后,上传至服务器端中。
在服务器端,解析模板文件,获取字段配置集合。对应字段配置集合中的每个字段配置,判断该字段配置是否完整。
如果字段配置不完整,判断redis中是否有该中文字段名的信息,如果有,则比对redis中的字段信息是否能与该字段配置适配,如果适配,则直接用redis中的字段信息补足,其中redis中的字段信息与字段类型表一致,例如包括:字段ID、英文字段名、中文字段名、字段类型、长度、小数点、是否非空、默认值等;否则,根据已有的字段配置,查询字段信息表,获取字段信息表中与数据表关联最多的字段信息,再根据获取的数据对字段信息进行补足,之后将补足后的字段信息返给前端页面显示给用户。具体地,对于横向模板和纵向模板可以执行不同的处理,日新:
1)横向模板
当用户上传图4所示的横向模板到服务器后,服务器将会读取目标文件第一个工作页的第一行内容,将会解析出以下字段:职工ID、职工名称、年龄、部门ID、直属上级ID、直属上级名称。之后,遍历这几个字段,来分别获取字段信息表或缓存表中的字段信息。比如,以职工名称为例:首先,系统将会以“职工名称”为key值,来查询redis缓存。如果,redis缓存里有这个key存在,则直接获取redis里存的信息,作为“职工名称”这一字段的字段信息。如果redis未存在该key值,说明字段信息表里也没有存在该中文字段名对应的信息,则不作其它处理,直接将“职工名称”这一中文字段名展示到前端,之后在前端补足信息即可。
2)纵向模板
当用户上传图5所示的纵向模板到服务器时,服务器解析除第一行外的其它行数据信息。获取字段配置,如中文字段名、英文字段名、字段类型、长度等信息。之后,同样将遍历这几个字段,来分别获取字段信息表或缓存中的字段信息。以“部门ID”为例,首先,同样以“部门ID”这一字段作为key值查询redis缓存,如果查询到字段信息,判断解析出来的关于“部门ID”的字段信息是否与redis里保存的字段信息是否一致。比如,解析出来的字段信息为英文名为department_id,字段类型为vachar,长度为32;如果redis里保存的字段英文名、字段类型以及长度也为这些,则直接用redis的信息补足字段回显到前端页面。否则,查询字段信息表,找到符合这几个字段信息的使用最多的字段信息。如果字段信息表里也没找到可用的字段信息,则不对字段配置进行补足,直接回显到前端界面。
用户在客户端的看在页面中可以看到服务器端给补足的字段信息,如果还有未补足的字段配置,则需要用户自己填入数据,用户同样能够根据自己的需要修改字段信息。同时还能够查看同中文名的其它字段的信息以及其所关联的表,用户可以根据表之间的关系来选择该字段的配置。用户完善字段信息后,还可以额添加所需约束,以便服务端生成对应建表SQL,开始创建数据表。
服务端建表完成后,判断该字段信息是否已存在于字段信息表中,如果已存在,则直接添加该字段息与数据表的关联信息到关联表。否则需要添加相应的字段信息至字段信息表,以及添加该字段息与数据表的关联信息到关联表。之后开始扫描此次添加的字段信息,判断其是否与redis缓存的字段信息一致,如果不一致,获取该中文字段的信息配置中使用最多项,将其刷新到redis中。比如,“部门ID”补足后的字段类型为int,长度12位,而此时redis缓存里的“部门ID”的字段类型varchar,长度为32位,则需要重新寻找出“部门ID”使用最多的字段信息,将其刷新到redis中。
综上所述,根据本发明实施例的创建数据表的方案,具有如下有益效果:
第一、利用模板文件,上传数据表的字段配置,效率更高。
第二、根据上传的字段配置,默认利用使用最广的适配字段补全缺失的字段信息,这样带来的好处为:使得多数据表之间的相同字段规格统一,命名一致,在最终多表关联查询数据时效率得到提升。
第三、提供相同中文字段名的字段信息选择,使用户能够根据其关联表进行查询,将其关联字段的字段配置引入,得用户的字段命名更加规范。
第四、Redis缓存中文字段名相同的字段信息中使用频率最高的字段信息,使字段匹配的效率更高,尤其是只上传中文字段名的情况。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
Claims (10)
1.一种创建数据表的方法,在计算设备中执行,适于为数据库新创建一张目标数据表,且所述数据库已经建立有多张数据表,所述方法包括:
将所述多张数据表的字段信息汇总为字段信息表,所述字段信息表中每条字段信息具有唯一的字段标识,且每条字段信息的英文字段名具有备注的中文字段名;
建立数据表与字段信息表中字段信息之间的关联表,所述关联表的每个表项是数据表标识与该数据表的所有字段分别对应的字段标识的关联关系;
基于所述字段信息表和关联表生成缓存表,所述缓存表的每个表项是中文字段名与字段信息的关联关系,且在所述关联关系中,所述字段信息是在所述多张数据表中具有该中文字段名的、使用次数最多的字段信息;
基于所述缓存表和字段信息表,生成字段信息集合;以及
基于所述字段信息集合创建所述目标数据表。
2.如权利要求1所述的方法,其中,所述基于所述字段信息表和关联表生成缓存表,包括:
对于数据库中的每个中文字段名,从字段信息表中获取具有该中文字段名的所有字段信息对应的字段标识集合;
对于所述字段标识集合中的每个字段标识,统计该字段标识在所述关联表中的出现次数;
将该中文字段名与出现次数最多的字段标识对应的字段信息,相关联的存储到所述缓存表中。
3.如权利要求1或2所述的方法,其中,所述基于所述缓存表和字段信息表,生成字段信息集合,包括:
接收客户端上传的模板文件,所述模板文件包括多个字段配置,每个字段配置对应于所述目标数据表的一个字段,且每个所述字段配置至少包括中文字段名;
对于每个所述字段配置,根据中文字段名从所述缓存表中检索关联的字段信息;
当未检索到关联的字段信息时,将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息;
当检索到关联的字段信息时,若该字段配置仅包括中文字段名,则将检索到的字段信息返回给客户端,若该字段配置还包括其他信息,则判断该字段信息是否与该字段配置匹配,若匹配,将该字段信息返回给客户端,若不匹配,则从字段信息表中获取使用该字段配置次数最多的字段信息,并将使用次数最多的字段信息返回给客户端;
客户端将补全的字段信息以及计算设备返回的字段信息,构建为字段信息集合上传给计算设备。
4.如权利要求3所述的方法,其中,所述从字段信息表中获取使用该字段配置次数最多的字段信息,包括:
从字段信息表中获取具有该字段配置的所有字段信息对应的字段标识集合;
对于所述字段标识集合中的每个字段标识,统计该字段标识在所述关联表中的出现次数;
将出现次数最多的字段标识对应的字段信息,确定为使用该字段配置次数最多的字段信息。
5.如权利要求3所述的方法,其中,若字段信息表中不存在使用该字段配置的字段信息,则将该字段配置返回给客户端,由用户在客户端将该字段配置补全为完整的字段信息。
6.如权利要求1至5中任一项所述的方法,还包括:
当客户端接收到计算设备返回的字段信息时,接受用户对该字段信息的更改;和/或
将字段配置或者字段信息返回给客户端时,一并返回与该字段配置或者字段信息具有相同中文字段名的其他字段信息,以便客户端将其展示给用户。
7.如权利要求1至6中任一项所述的方法,还包括:在创建所述目标数据表之后,对所述缓存表、字段信息表和关联表进行更新。
8.如权利要求7所述的方法,其中,所述对所述缓存表、字段信息表和关联表进行更新,包括:
对于所述字段信息集合中的任一字段信息,将该字段信息与目标数据表的关联关系添加到所述关联表中,并在该字段信息不存在于所述字段信息表时,则将其添加到所述字段信息表中;
获取该字段信息中的中文字段名,判断该字段信息是否与缓存表中与该中文字段名关联的字段信息一致,如果不一致,则获取字段信息表中具有该中文字段名的、使用次数最多的字段信息,将该中文字段名以及获取的字段信息刷新到所述缓存表中。
9.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166529.XA CN110909003B (zh) | 2019-11-25 | 2019-11-25 | 一种创建数据表的方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166529.XA CN110909003B (zh) | 2019-11-25 | 2019-11-25 | 一种创建数据表的方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909003A true CN110909003A (zh) | 2020-03-24 |
CN110909003B CN110909003B (zh) | 2022-06-10 |
Family
ID=69819287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911166529.XA Active CN110909003B (zh) | 2019-11-25 | 2019-11-25 | 一种创建数据表的方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909003B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782608A (zh) * | 2020-07-21 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN111984670A (zh) * | 2020-07-27 | 2020-11-24 | 北京天健源达科技股份有限公司 | 一种生成显示视图注释信息脚本的方法 |
CN112131258A (zh) * | 2020-09-23 | 2020-12-25 | 创新奇智(重庆)科技有限公司 | 数据拼接方法、装置、设备及计算机存储介质 |
CN112540762A (zh) * | 2020-12-08 | 2021-03-23 | 杭州讯酷科技有限公司 | 一种基于表及字段优化排序的ui界面快捷制作方法 |
CN112612794A (zh) * | 2020-12-29 | 2021-04-06 | 北京锐安科技有限公司 | 一种关系型数据库的辅助生成方法、装置、计算机设备及存储介质 |
CN112799672A (zh) * | 2020-12-31 | 2021-05-14 | 杭州广立微电子股份有限公司 | 一种基于关键词的测试数据处理方法 |
CN113220691A (zh) * | 2021-05-31 | 2021-08-06 | 北京互金新融科技有限公司 | 数据库的库表创建方法及库表创建装置、电子设备 |
CN113391803A (zh) * | 2021-05-19 | 2021-09-14 | 成都易达数安科技有限公司 | 创建对象管理引擎的方法、装置、终端设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021867A1 (en) * | 2006-07-19 | 2008-01-24 | Fujitsu Limited | Database analysis program, database analysis apparatus, and database analysis method |
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
CN106202091A (zh) * | 2015-05-04 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种字段设置方法和装置 |
CN108256074A (zh) * | 2018-01-17 | 2018-07-06 | 链家网(北京)科技有限公司 | 校验处理的方法、装置、电子设备和存储介质 |
CN109902090A (zh) * | 2019-02-19 | 2019-06-18 | 北京明略软件系统有限公司 | 字段名称获取方法和装置 |
CN110321344A (zh) * | 2019-05-20 | 2019-10-11 | 平安普惠企业管理有限公司 | 关联数据的信息查询方法、装置、计算机设备及存储介质 |
-
2019
- 2019-11-25 CN CN201911166529.XA patent/CN110909003B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080021867A1 (en) * | 2006-07-19 | 2008-01-24 | Fujitsu Limited | Database analysis program, database analysis apparatus, and database analysis method |
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
CN106202091A (zh) * | 2015-05-04 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种字段设置方法和装置 |
CN108256074A (zh) * | 2018-01-17 | 2018-07-06 | 链家网(北京)科技有限公司 | 校验处理的方法、装置、电子设备和存储介质 |
CN109902090A (zh) * | 2019-02-19 | 2019-06-18 | 北京明略软件系统有限公司 | 字段名称获取方法和装置 |
CN110321344A (zh) * | 2019-05-20 | 2019-10-11 | 平安普惠企业管理有限公司 | 关联数据的信息查询方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
丘志鹏等: "优先关联的Web日志数据逼真生成算法", 《计算机系统应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782608B (zh) * | 2020-07-21 | 2024-04-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN111782608A (zh) * | 2020-07-21 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 文件自动生成方法、装置、电子设备及存储介质 |
CN111984670A (zh) * | 2020-07-27 | 2020-11-24 | 北京天健源达科技股份有限公司 | 一种生成显示视图注释信息脚本的方法 |
CN111984670B (zh) * | 2020-07-27 | 2024-03-19 | 北京天健源达科技股份有限公司 | 一种生成显示视图注释信息脚本的方法 |
CN112131258A (zh) * | 2020-09-23 | 2020-12-25 | 创新奇智(重庆)科技有限公司 | 数据拼接方法、装置、设备及计算机存储介质 |
CN112540762A (zh) * | 2020-12-08 | 2021-03-23 | 杭州讯酷科技有限公司 | 一种基于表及字段优化排序的ui界面快捷制作方法 |
CN112540762B (zh) * | 2020-12-08 | 2024-05-28 | 杭州讯酷科技有限公司 | 一种基于表及字段优化排序的ui界面快捷制作方法 |
CN112612794A (zh) * | 2020-12-29 | 2021-04-06 | 北京锐安科技有限公司 | 一种关系型数据库的辅助生成方法、装置、计算机设备及存储介质 |
CN112799672A (zh) * | 2020-12-31 | 2021-05-14 | 杭州广立微电子股份有限公司 | 一种基于关键词的测试数据处理方法 |
CN113391803A (zh) * | 2021-05-19 | 2021-09-14 | 成都易达数安科技有限公司 | 创建对象管理引擎的方法、装置、终端设备以及存储介质 |
CN113391803B (zh) * | 2021-05-19 | 2023-12-05 | 成都易达数安科技有限公司 | 创建对象管理引擎的方法、装置、终端设备以及存储介质 |
CN113220691A (zh) * | 2021-05-31 | 2021-08-06 | 北京互金新融科技有限公司 | 数据库的库表创建方法及库表创建装置、电子设备 |
CN113220691B (zh) * | 2021-05-31 | 2024-02-06 | 北京互金新融科技有限公司 | 数据库的库表创建方法及库表创建装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110909003B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110909003B (zh) | 一种创建数据表的方法及计算设备 | |
US10095735B2 (en) | System for exploring data in a database | |
CN112506946A (zh) | 业务数据查询方法、装置、设备及存储介质 | |
WO2015081780A1 (zh) | 列式数据库处理的方法和处理设备 | |
CN109299100A (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
US9563691B2 (en) | Providing search suggestions from user selected data sources for an input string | |
CN109992603B (zh) | 一种数据搜索方法、装置、电子设备和计算机可读介质 | |
WO2021008340A1 (zh) | 金融数据的生成方法、装置、计算机设备及存储介质 | |
CN105550206A (zh) | 结构化查询语句的版本控制方法及装置 | |
CN109388659B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN111274263A (zh) | 可视化数据库变更语句生成方法、装置及存储介质 | |
CN110647577A (zh) | 数据立方体的分区方法、装置、计算机设备及存储介质 | |
TW201530322A (zh) | 字型處理方法及字型處理系統 | |
CN111831684B (zh) | 数据的查询方法、装置和计算机可读存储介质 | |
US20210012444A1 (en) | Automated patent preparation | |
US8639709B2 (en) | Comparing very large XML data | |
CN115934716A (zh) | 一种基于元数据定义和实现的Excel表格数据导入数据库的方法 | |
US20090210400A1 (en) | Translating Identifier in Request into Data Structure | |
US10331715B2 (en) | Metadata enrichment with a keyword definition editor | |
CN110825747B (zh) | 一种信息存取方法、装置和介质 | |
US20070168857A1 (en) | Transformation of Source Data in a Source Markup Language to Target Data in a Target Markup Language | |
US10817570B2 (en) | Hybrid connectivity for reporting application | |
JP6916136B2 (ja) | 検索支援装置、検索支援方法、及び検索支援プログラム | |
CN112328664A (zh) | 一种报表生成方法及系统 | |
CN111310088A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |