CN114661725A - 生成数据表结构说明的方法、系统、装置及存储介质 - Google Patents
生成数据表结构说明的方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN114661725A CN114661725A CN202210347214.0A CN202210347214A CN114661725A CN 114661725 A CN114661725 A CN 114661725A CN 202210347214 A CN202210347214 A CN 202210347214A CN 114661725 A CN114661725 A CN 114661725A
- Authority
- CN
- China
- Prior art keywords
- name
- data
- description
- relational database
- generating
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
-
- 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
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/258—Heading extraction; Automatic titling; Numbering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种生成数据表结构说明的方法、系统、装置及存储介质,属于数据表处理技术领域,其方法包括与表关系型数据库建立连接后,在python环境下,创建并启动光标对象,对连接的表关系型数据库进行遍历,得到表关系型数据库中所有数据表的表名;再根据获得的表名依次调取对应数据表的表信息,将所有表信息录入到结构说明文档中后,即得到连接的表关系型数据库中数据表的结构说明。便于快速得到表关系型数据库数据表的结构说明,减少人工工作量。因此本申请具有提高数据表结构说明的生成效率的效果。
Description
技术领域
本发明涉及数据表处理技术领域,尤其涉及一种生成数据表结构说明的方法、系统、装置及存储介质。
背景技术
数据库表的说明通常是互联网公司的常备文件,用于留存表结构设计,以便于清晰且直观地了解数据库下各个表发挥的作用。
在当前环境下,类似于达梦数据库的表关系型数据库已成为国产数据库市场的主流,占据了国产数据库市场较大的份额。随着达梦数据库等表关系型数据库的兴起,表关系型数据库的数据表说明需求量增加。现有技术中数据表结构说明通常由负责人整理获得,导致数据表结构说明的生成效率低下。
发明内容
有鉴于此,本发明提供了一种生成数据表结构说明的方法、系统、装置及存储介质,用于解决现有技术中效率低下的问题。为达上述之一或部分或全部目的或是其他目的,本发明提出一种生成数据表结构说明的方法、系统、装置及存储介质,第一方面:
一种生成数据表结构说明的方法,包括:
在与表关系型数据库建立连接后,生成光标对象;
基于所述光标对象获取所述表关系型数据库中各个数据表的表名;
获取各个所述表名对应的所述数据表的表信息;
将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档。
优选地,在所述的在与表关系型数据库建立连接后,生成光标对象的步骤之前,所述方法还包括:
在未与所述表关系型数据库建立连接时,获取目标接口;
基于所述目标接口在目标运行环境中与所述表关系型数据库建立连接。
优选地,所述基于所述光标对象获取所述表关系型数据库中各个数据表的表名的步骤包括:
启动所述光标对象并获取预设的表名标识;
基于所述光标对象,遍历连接的所述表关系型数据库,在所述表关系型数据库中查找所述表名标识,并在查找到所述表名标识时,获取与所述表名标识对应的表名数据,以得到所述表名;
将获得的所述表名排列后生成表名列表;
所述表信息包括字段说明和表结构;
所述获取各个所述表名对应的所述数据表的表信息的步骤包括:
遍历所述表名列表;
每获得所述表名列表中的一个所述表名,则从所述表关系型数据库中获取对应所述数据表的所述字段说明和所述表结构。
优选地,每个所述表名均对应预设表结构信息;
所述获取对应所述数据表的所述字段说明的步骤包括:
获取预设的字段说明标识;
从所述表关系型数据库中对应所述表名的所述数据表中查找所述字段说明标识,并在查找到所述字段说明标识时,获取与所述字段说明标识对应的字段说明数据,以得到所述字段说明;
所述获取对应所述数据表的所述表结构的步骤包括:
到预设的数据库中获取所述表名对应的所述表结构信息,以得到所述表结构。
优选地,所述将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档的步骤包括:
创建具有文字处理能力的文档;
获取标题格式以及表格样式;
调取目标运行环境中的表格制作指令;
基于所述表格制作指令,按照所述标题格式以及所述表格样式在所述文档中生成表格;每个所述表名对应一个所述表格,并以所述表名为所述表格的标题,将所述表结构和所述字段说明添加至所述表格的对应栏中,形成所述结构说明文档。
优选地,所述标题格式包括标题样式、标题字体是否加粗、标题字体大小和标题字体类型中的至少一个;
所述表格样式包括基础行数、表格列数、表格类型、总列宽和首行中各单元格的内容中的至少一个;
所述首行中各单元格的内容包括与所述表结构对应的编号、字段名、类型、长度、是否为主键以及是否可空,所述首行中各单元格的内容还包括与所述字段说明对应的字段标识。
优选地,在所述形成所述结构说明文档之后,还包括:
判断所述表格中是否出现整列内容为空;
若是,则删除或隐藏内容为空的列并生成与对应所述表格关联的警示信息。第二方面:
一种生成数据表结构说明的系统,包括光标模块,用于在与表关系型数据库建立连接后,生成光标对象;
表名获取模块,用于基于光标对象获取表关系型数据库中各个数据表的表名;
表信息获取模块,用于获取各个表名对应的数据表的表信息;
以及文档模块,用于将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档。
第三方面:
一种生成数据表结构说明装置,包括存储器和处理器,所述存储器中存储有生成数据表结构说明方法;所述处理器用于在执行所述生成数据表结构说明方法时采用上述任一种方法。
第四方面:
一种存储介质,存储有能够被处理器加载并执行上述任一种方法的计算机程序。
实施本发明实施例,将具有如下有益效果:
在与表关系型数据库建立连接后,利用光标对象对表关系型数据库中的各个数据表的表名进行读取,从而获得连接的表关系型数据库下的所有数据表的表名。而后以表名为依据,以此获取连接的表关系型数据库下各个数据表的表信息。最后生成结构说明文档,再将表信息输入至结构说明文档中,以得到连接的表关系型数据库下所有数据表的表结构说明。因此在需要获取某个表关系型数据库中数据表的结构说明时,只需要连接对应的表关系型数据库即可,稍加等待,即可得到相应的结构说明。无需技术人员手动进行查询、筛选、整理和导出等工作,既有助于提高生成以及获得表关系型数据库表结构说明的效率,又有助于降低工作量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中生成数据表结构说明的方法的整体流程图。
图2为一个实施例中与表关系型数据库建立连接的流程图。
图3为一个实施例中基于光标对象获取各个数据表的表名的流程图。
图4为一个实施例中生成结构说明文档的流程图。
图5为一个实施例中生成数据表结构说明的方法的另一整体流程图。
图6为一个实施例中生成结构说明文档的另一流程图。
图7为一个实施例中生成数据表结构说明的系统的整体框架图。
图8为一个实施例中生成数据表结构说明的系统中表名获取模块的框架图。
图9为一个实施例中生成数据表结构说明的系统中表信息获取模块的框架图。
图10为一个实施例中生成数据表结构说明的系统中文档模块的框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
表关系型数据库:一种关系型数据库,其特点为具有表结构,即数据库下能够建立若干数据表,需要储存的数据可以储存在数据表的行和/或列中。常见的表关系型数据库包括mysql数据库、达梦数据库和Oracle数据库。
Python:一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。具有可扩展性、可扩充性和可嵌入性等特点;其中,可扩展性例如需要一段关键代码运行得更快,或者希望某些算法不公开,则可以部分程序使用C或C++编写,而后在python程序中使用他们。Python本身是可扩充的,使所有的特性和功能无需均集成到语言核心;python具有较多的API和工具,以便于能够使用C语言、C++和Cython来编写扩充模块。可嵌入性即可以把python嵌入至C或C++程序中,向程序提供脚本功能。
Dmpython包:一个数据包,用于为python连接达梦数据库提供必要的连接包。,本申请中所述的dmpython包即指能够在python环境下连接表关系型数据库的数据包。
本发明实施例提供一种生成数据表结构说明的方法。本发明实施例提供的生成数据表结构说明的方法可以通过计算机程序来实现,该计算机程序在执行的时候,完成本发明实施例提供的生成数据表结构说明的方法中各个步骤。
参照图1,生成数据表结构说明的方法包括:
S100、在与表关系型数据库建立连接后,生成光标对象。
优选的,在具体实施方式中,优选表关系型数据库为达梦数据库。需要说明的是,由于在目标运行环境中,无法直接对数据库执行SQL语句,因此必须生成光标对象,以执行SQL语句。具体的,在一实施例中,目标运行环境为python环境,利用cursor()语句生成光标对象。即在需要生成光标对象时,执行cursor()语句即可。
为了便于进一步理解,在一应用场景中,限定每次只能针对一个表关系型数据库的数据表的结构说明进行生成,因此每次仅生成一个光标对象。同时需要使生成的光标对象与建立连接的表关系型数据库关联,以使光标对象在执行SQL语句时,仅对建立连接的表关系型数据库进行遍历。具体的,首先获取需要建立连接的表关系型数据库的数据库信息;其中,数据库信息可以包括数据库名称、编号、地址和端口号中的一个或多个。而后将数据库信息定义给一预设第一函数;最后将被定义的第一函数与cursor()关联,即可得到与建立连接的表关系型数据库相关联的光标对象。
在另一应用场景中,可以同时针对多个表关系型数据库的数据表的结构说明进行生成。此种情况下,需要针对不同的表关系型数据库生成光标对象,即需要生成多个光标对象。此时将不同的光标对象分别命名,再与对应的表关系型数据库相关联即可,避免光标对象与表关系型数据库关联出错,出现数据错乱等情况。相比于每次仅生成一个表关系型数据库的数据表的结构说明的方式,进一步提高了效率。例如生成两个光标对象,分别命名为光标对象A和光标对象B;其中,光标对象A与达梦数据库A关联,光标对象B与达梦数据库B关联即可。
与表关系型数据库建立连接是生成数据表的结构说明的必要条件,为了便于进一步理解,参照图2,在步骤S100之前,生成数据表结构说明的方法还包括:
S10、判断是否与表关系型数据库建立连接。
若是,则执行步骤S100;否则,执行步骤S20-S30。
S20、获取目标接口。
具体的,通过调用dmPython包以获取目标接口。dmPython包已在前文进行解释说明,此处不再赘述。
S30、基于目标接口在目标运行环境中与表关系型数据库建立连接。
在一实施例中,目标运行环境优选为python环境。通过目标接口与表关系型数据库建立连接,便于与需要生成数据表结构说明的表关系型数据库建立连接。
在一应用场景中,表关系型数据库有且只有一个,此时无需获取表关系型数据库的数据库信息,直接与唯一的表关系型数据库建立连接即可。
在另一应用场景中,表关系型数据库的数量为多个。此时可以在步骤S20执行之前、执行之后或执行时获取表关系型数据库的数据库信息,以便与对应的需要生成结构说明的表关系型数据库建立连接。
参照图1,在步骤S100之后,还包括:
S200、基于光标对象获取表关系型数据库中各个数据表的表名。
表关系型数据库中包含有若干数据表,每个数据表均具有唯一的表名。光标对象能够执行SQL语句,通过执行的SQL语句,达到遍历表关系型数据库的目的,从而调取表关系型数据库中的所有数据表的表名。一方面方便了表名的获取,另一方面提高了表名获取的效率。
在一实施例中,参照图3,步骤S200包括:
S210、启动光标对象并获取预设的表名标识。
光标对象启动后,执行相应的SQL语句,查找表关系型数据库中的数据表的表名。此外,表名标识可以在启动光标对象之前、之后或启动时获取,即启动光标对象和获取预设的表名标识之间没有执行顺序要求。
S220、基于光标对象,遍历连接的表关系型数据库,在表关系型数据库中查找表名标识,并在查找到表名标识时,获取与表名标识对应的表名数据,以得到表名。
在一实施例中,表名标识为TABLE_NAME;,在其他实施例中,表名标识也可以设置成其他形式的语句,例如数字、符号、字母或其组合,旨在能够通过表名标识查找到表关系型数据库中各个数据表的表名即可。
S230、将获得的表名排列后生成表名列表。
具体的,在一应用场景中,表名的排列顺序可以是表名获得的先后顺序;在另一应用场景中,表名的排列顺序可以以表名首字母为依据,进行正序或倒序排列。即只要能够生成具有一定排列顺序的表名列表即可,不对排列要求加以限定。
在另一实施例中,对于表名的识别,可以使用与步骤S220不同的手段。例如在光标对象遍历表关系型数据库的过程中,通过表名位置获取各个数据表的表名。对于通过表名位置获取表名的手段,可以采用获取表名位置信息的方式得知表名位置,此时则不再需要获取表名标识。
在一些实施例中,为了便于对获取到的表名进行审核,在步骤S230之后还包括:
S240、输出表名列表至显示端,使显示端对表名列表进行显示。
及时将表名列表输出显示,使相关负责人能够对表名列表进行核查,及时发现表名的遗漏情况以及列表中的错误情况,有助于保证生成的结构说明的准确度。从而降低因表名遗漏或错误而重新对同一达梦数据库进行二次生成结构说明的概率,便于保证生成数据表的结构说明的效率。
参照图1,S300、获取各个表名对应的数据表的表信息。
在一实施例中,表信息包括字段说明和表结构。在另一实施例中,表信息可以只包括表结构或字段说明。
为了便于理解,以表信息包括字段说明和表结构为例,进行说明。
步骤S300包括:
S310、遍历表名列表。
即按照表名列表的排列顺序依次读取表名列表中的表名。此外,为了降低遗漏概率,可以对表名列表进行循环遍历,以保证生成数据表结构说明的效率。
S320、每获得表名列表中的一个表名,则从表关系型数据库中获取对应数据表的字段说明和表结构。
在目标运行环境中,即python环境中,始终与达梦数据库保持连接状态,以便于读取达梦数据库中各个数据表的相关信息。
在一应用场景中,获取对应数据表的字段说明的步骤包括:
S321、获取预设的字段说明标识。
具体的,在一实施例中,字段说明标识为COLUMN_COMMENT;在其他实施例中,字段说明标识也可以设置成其他形式的语句,例如数字、符号、字母或其组合,旨在能够通过字段说明标识查找到达梦数据库中各个数据表的字段说明即可。
S322、从表关系型数据库中对应表名的数据表中查找字段说明标识,并在查找到字段说明标识时,获取与字段说明标识对应的字段说明数据,以得到字段说明。
自动获取字段说明标识,并以字段说明标识查找和获取字段说明,提高了字段说明的获取便捷性。此外,与字段说明标识对应的字段说明数据可以是字段说明数据中包含有字段说明标识,也可以是字段说明数据携带或关联有字段说明标识;字段说明可以与字段说明数据等同,即整个字段说明数据均为字段说明;字段说明也可以是字段说明数据的一部分,例如字段说明数据包含有字段说明标识和字段说明,查找到字段说明标识后,获取字段说明数据中的字段说明即可。
在一应用场景中,每个表名均对应预设表结构信息。即在建设表关系型数据库时,即达梦数据库,每生成一个数据表,均会将数据表对应的表结构信息存入到相应储存空间中。获取对应数据表的表结构的步骤包括:
S323、到预设的数据库中获取表名对应的表结构信息,以得到表结构。
即表结构信息中包含有表结构,或者表结构信息即为表结构。表结构作为表信息的一部分,获取方式简单、便捷且自动,一方面便于保证生成的结构说明中的表结构的准确率,另一方面有助于提高表结构的获取效率。
具体的,在一实施例中,表结构包括:编号、字段名、类型、长度、是否为主键以及是否可空。其中,是否为主键也可以替换成主键或外键。为了便于理解,例如,字段名可以是ID、CONFERENCEID、NAME、PHONENUMBER、TYPE、DESCRIPTION、NUMBER、DURATION或DEVIVEID;类型可以是CHAR、VARCHAR或INT;长度可以是4、12、15、30、40或80;主键可以是Primarykey,外键可以是Foreign key,其中,是否为主键可以通过if语句判定,如:IF(au.constraint type='P','Primary key','Foreign key');是否可空的结果可以包括YES和NO。
需要说明的是步骤S323为独立步骤,即步骤S323可以与步骤S321同时执行,也可以在步骤S321之前或之后执行。步骤S321与步骤S322为固定执行顺序,先执行步骤S321,再执行步骤S322。
参照图1,在获得表信息后,执行步骤S400、将表信息与对应的表名关联录入到文档中以形成结构说明文档。
将所有表信息均录入到文档中,便于对表关系型数据库下数据表的情况进行查看。需要说明的是,在一实施例中,一个结构说明文档对应一个表关系型数据库,即同一个表关系型数据库下的所有数据表对应的表信息均存储在同一个结构说明文档中。在其他实施例中,一个结构说明文档也可以对应一个数据表的表信息,即一个表关系型数据库对应有多个结构说明文档,且结构说明文档的数量与表关系型数据库下数据表的数量相等。
具体的,参照图4,在一应用场景中,步骤S400包括:
S410、创建具有文字处理能力的文档。
在一实施例中,利用python的doxc包可以对word中的格式进行布局,因此选择创建的文档类型为word。
S420、获取标题格式以及表格样式。
标题格式包括标题样式、标题字体是否加粗、标题字体大小和标题字体类型中的至少一个。其中,标题样式即word中标题的样式,word文档中自带有标题样式集,以供选择;标题字体类型包括宋体、黑体和楷体等。需要说明的是,标题样式、标题字体是否加粗、标题字体大小和标题字体类型均根据实际需求进行设定,若未设定,则使用默认设定,例如可以默认设定标题字体不加粗、标题字体大小为10磅等。在一应用场景中,将标题格式做如下设定:
添加标题并设置标题样式:photograph=document.add paragraph(style='List Number')。
设置标题字体加粗:run.bold=True。
设置标题字体大小为15磅:run.font.size=Pt(15)。
设置标题字体为宋体:run.font.name=u'宋体'。
表格样式包括基础行数、表格列数、表格类型、总列宽和首行中各单元格的内容中的至少一个。其中表格类型包括网格表和清单表等。表格样式可以根据实际要求设置,对于未设置的项,使用默认设定,例如默认设定可以是基础行数为2行、表格列数为6列、表格类型为网格表、总列宽为5000以及首行中各单元格的内容分别为与表结构对应的编号、字段名、类型、长度、是否为主键和是否可空。而在一应用场景中,将类型和长度设置在同一列中,为了便于进一步理解,列举下表:
13.CONFERENCE_MEMBER
其中,“13.”为标题序号,“CONFERENCE_MEMBER”为标题内容,标题内容即为对应数据表的表名。在上述应用场景中,首行中各单元格的内容还包括与字段说明对应的字段标识,但由于表名为CONFERENCE_MEMBER的数据表中并未添加有任何字段说明,因此字段标识下的单元格均为空值。
参照图4,S430、调取目标运行环境中的表格制作指令。
表格制作指令即前文提到的docx包,具有在word文档中创建表格的功能。
S440、利用表格制作指令,按照标题格式以及表格样式在文档中生成表格,每个表名对应一个表格,并以表名作为表格的标题,将表结构和字段说明添加至表格的对应栏中,形成结构说明文档。
为了便于进一步理解,设置表格样式为:
table=document.add table(rows=1,cols=6,style="Table Grid")
wdth=OxmlElement('w:tblW')
width.set(qn('w:w'),'5000')
table.tblPr.append(width)
hdr cells=table.rows[0].cells
hdr_cells[0].text='编号'
hdr_cells[1].text='字段名'
hdr_cells[2].text='字段标识'
hdr_cells[3].text='类型及长度'
hdr_cells[4].text='主键或外键'
hdr_cells[5].text='是否可空'
S450、输出结构说明文档。
需要说明的是,由于使用的是python环境中的docx包,因此结构说明文档的类型优选为word文档。但在一应用场景中,可以在步骤S450之前或之后,将word文档转换为PDF、CAD等文件,便于数据表结构说明的使用。从文档的建立,到标题格式和表格样式的制作、修改,再到录入表信息,整个过程均自动完成,有助于提高生成数据表的结构说明的效率。
参照图5,在一实施例中,在步骤S400之后,还包括:
S500、关闭光标对象。
有助于释放存储空间,减少内存占用以及避免在连接下一个表关系型数据库时,新生成的光标对象与已存在的光标对象发生冲突或错乱,影响结构说明文档的生成。
S600、关闭表关系型数据库的连接。
及时关闭连接,以便于连接下一个表关系型数据库和释放内存占用。
本实施例的一种生成数据表结构说明的方法的实施原理为:与需要生成数据表的结构说明的达梦数据库建立连接后,生成与建立连接的达梦数据库相关联的光标对象。启动光标对象,执行SQL语句,以对建立连接的达梦数据库进行表名获取,并将获取的所有表名排序,形成表名列表。而后按排序循环遍历表名列表,每获取到一个表名,则到对应的达梦数据库中获取对应数据表的表结构和字段说明。最后创建word文档,将获取的与各个表名对应的表结构和字段说明输入到word文档内的对应表格中,形成结构说明文档。
参照图6,在一实施例中,在步骤S440之后以及步骤S450之前,还包括:
S4a、判断表格中是否出现整列内容为空。
每个表关系型数据库中的数据表在word文档中均对应有一个表格,在将表信息添加至表格中后,判断表格中的各列是否除首行外均为空。
若是,执行步骤S4b、删除或隐藏内容为空的列并生成与对应表格关联的警示信息;否则,执行步骤S450。
其中,警示信息旨在能够使查看结构说明文档的人员得知每个表格被删除或被隐藏的列为哪列,便于表格的浏览。例如,在一应用场景中,警示信息位于对应表格的一侧,包含有被删除或隐藏的列的列名;所谓列名即每列首行单元格内的内容。在另一应用场景中,在word文档的最后创建表格,警示信息录入到最后的表格内;具体的,用于录入警示信息的表格包括至少两列,第一列为对应表格的编号,第二列为删除或隐藏的内容为空的列的列名。此外,警示信息还可以包含故障提示信息,例如路径无法访问、数据无法识别等。
在步骤S4b之后执行步骤S450。
本申请实施例还公开一种生成数据表结构说明的系统,参照图7,包括光标模块1,用于在与表关系型数据库建立连接后,生成光标对象。表名获取模块2,用于基于光标对象获取表关系型数据库中各个数据表的表名。表信息获取模块3,用于获取各个表名对应的数据表的表信息。以及文档模块4,用于生成结构说明文档并将表信息以及对应的表名关联输入至结构说明文档中,而后输出结构说明文档。
其中,所述系统还包括连接检测模块0,用于在未与表关系型数据库建立连接时,获取dmPython连接包,并基于dmPython连接包在python环境中与表关系型数据库建立连接。即连接检测模块0用于检测是否已有建立连接的表关系型数据库,若没有,则获取或者识别需要建立连接的表关系型数据库,在获取到或者识别到需要建立连接的表关系型数据库后,获取dmPythom连接包,在python环境中与获取或者识别的表关系型数据库进行连接。在一应用场景中,需要建立连接的表关系型数据库可由人为输入库名后,被连接检测模块0获取;也可以由连接检测模块0从预设的库名列表中识别获得。
参照图8,表名获取模块2包括启动单元21,用于启动光标对象。标识获取单元22,用于获取预设的表名标识。表名获取单元23,用于基于光标对象遍历连接的表关系型数据库,在表关系型数据库中查找表名标识,并在查找到表名标识时,获取与表名标识对应的表名数据,以得到表名。以及列表单元24,用于将获得的表名排列后生成表名列表。
参照图9,表信息获取模块3包括遍历单元31,用于遍历表名列表,且每获得表名列表中的一个表名后,将获得的表名输出给字段说明单元32和表结构单元33。字段说明单元32,用于获取预设的字段说明标识和遍历单元传输的表名,从表关系型数据库中对应表名的数据表中查找字段说明标识,并在查找到字段说明标识时,获取与字段说明标识对应的字段说明数据,以得到字段说明。表结构单元33,用于到预设的数据库中获取表名对应的表结构信息,以得到表结构。
参照图10,文档模块4包括创建单元41,用于创建word文档。格式获取单元42,用于获取标题格式以及表格样式。其中,标题格式包括标题样式、标题字体是否加粗、标题字体大小和标题字体类型中的至少一个,在一实施例中,标题格式包括标题样式、标题字体是否加粗、标题字体大小和标题字体类型。表格样式包括基础行数、表格列数、表格类型、总列宽和首行中各单元格的内容中的至少一个,在一实施例中,表格样式包括基础行数、表格列数、表格类型、总列宽和首行中各单元格的内容。首行中各单元格的内容包括与表结构对应的编号、字段名、类型、长度、是否为主键以及是否可空,首行中各单元格的内容还包括与字段说明对应的字段标识。
调取单元43,用于调取python环境中的docx包。录入单元44,用于利用docx包,按照标题格式以及表格样式在word文档中生成表格,每个表名对应一个表格,并以表名为表格的标题,将表结构和字段说明添加至表格的对应栏中。以及输出单元45,用于输出word文档。
这里需要指出的是:以上应用于生成数据表结构说明的系统实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本发明生成数据表结构说明的系统实施例中未披露的技术细节,本领域的技术人员请参照本发明方法实施例的描述而理解。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read OnlyMemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应地,本申请实施例还公开一种存储介质,存储有能够被处理器加载并执行上述方法的计算机程序。
本申请实施例还公开一种生成数据表结构说明装置,包括存储器和处理器,存储器中存储有生成数据表结构说明方法;处理器用于在执行生成数据表结构说明方法时采用上述方法。
以上应用于生成数据表结构说明装置和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明音频数据处理设备和存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (10)
1.一种生成数据表结构说明的方法,其特征在于,包括:
在与表关系型数据库建立连接后,生成光标对象;
基于所述光标对象获取所述表关系型数据库中各个数据表的表名;
获取各个所述表名对应的所述数据表的表信息;
将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档。
2.如权利要求1所述的生成数据表结构说明的方法,其特征在于,在所述的在与表关系型数据库表关系型数据库建立连接后,生成光标对象的步骤之前,所述方法还包括:
在未与所述表关系型数据库建立连接时,获取目标接口;
基于所述目标接口在目标运行环境中与所述表关系型数据库建立连接。
3.如权利要求1所述的生成数据表结构说明的方法,其特征在于,所述基于所述光标对象获取所述表关系型数据库中各个数据表的表名的步骤包括:
启动所述光标对象并获取预设的表名标识;
基于所述光标对象,遍历连接的所述表关系型数据库,在所述表关系型数据库中查找所述表名标识,并在查找到所述表名标识时,获取与所述表名标识对应的表名数据,以得到所述表名;
将获得的所述表名排列后生成表名列表;
所述表信息包括字段说明和表结构;
所述获取各个所述表名对应的所述数据表的表信息的步骤包括:
遍历所述表名列表;
每获得所述表名列表中的一个所述表名,则从所述表关系型数据库中获取对应所述数据表的所述字段说明和所述表结构。
4.如权利要求3所述的生成数据表结构说明的方法,其特征在于,每个所述表名均对应预设表结构信息;
所述获取对应所述数据表的所述字段说明的步骤包括:
获取预设的字段说明标识;
从所述表关系型数据库中对应所述表名的所述数据表中查找所述字段说明标识,并在查找到所述字段说明标识时,获取与所述字段说明标识对应的字段说明数据,以得到所述字段说明;
所述获取对应所述数据表的所述表结构的步骤包括:
到预设的数据库中获取所述表名对应的所述表结构信息,以得到所述表结构。
5.如权利要求4所述的生成数据表结构说明的方法,其特征在于,所述将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档的步骤包括:
创建具有文字处理能力的文档;
获取标题格式以及表格样式;
调取目标运行环境中的表格制作指令;
基于所述表格制作指令,按照所述标题格式以及所述表格样式在所述文档中生成表格;每个所述表名对应一个所述表格,并以所述表名为所述表格的标题,将所述表结构和所述字段说明添加至所述表格的对应栏中,形成所述结构说明文档。
6.如权利要求5所述的生成数据表结构说明的方法,其特征在于,所述标题格式包括标题样式、标题字体是否加粗、标题字体大小和标题字体类型中的至少一个;
所述表格样式包括基础行数、表格列数、表格类型、总列宽和首行中各单元格的内容中的至少一个;
所述首行中各单元格的内容包括与所述表结构对应的编号、字段名、类型、长度、是否为主键以及是否可空,所述首行中各单元格的内容还包括与所述字段说明对应的字段标识。
7.如权利要求5所述的生成数据表结构说明的方法,其特征在于,在所述形成所述结构说明文档之后,还包括:
判断所述表格中是否出现整列内容为空;
若是,则删除或隐藏内容为空的列并生成与对应所述表格关联的警示信息。
8.一种生成数据表结构说明的系统,其特征在于:包括光标模块(1),用于在与表关系型数据库建立连接后,生成光标对象;
表名获取模块(2),用于基于光标对象获取表关系型数据库中各个数据表的表名;
表信息获取模块(3),用于获取各个表名对应的数据表的表信息;
以及文档模块(4),用于将所述表信息与对应的所述表名关联录入到文档中以形成结构说明文档。
9.一种生成数据表结构说明装置,包括存储器和处理器,其特征在于:所述存储器中存储有生成数据表结构说明方法;所述处理器用于在执行所述生成数据表结构说明方法时采用上述权利要求1-7任一种方法。
10.一种存储介质,其特征在于:存储有能够被处理器加载并执行如权利要求1-7任一种方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210347214.0A CN114661725A (zh) | 2022-04-01 | 2022-04-01 | 生成数据表结构说明的方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210347214.0A CN114661725A (zh) | 2022-04-01 | 2022-04-01 | 生成数据表结构说明的方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114661725A true CN114661725A (zh) | 2022-06-24 |
Family
ID=82034056
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210347214.0A Pending CN114661725A (zh) | 2022-04-01 | 2022-04-01 | 生成数据表结构说明的方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114661725A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105278961A (zh) * | 2015-10-28 | 2016-01-27 | 广州华多网络科技有限公司 | 生成数据库表结构文档的方法及系统 |
CN111241800A (zh) * | 2020-01-17 | 2020-06-05 | 深圳震有科技股份有限公司 | MySQL数据库表结构文档的生成方法、存储介质及智能终端 |
-
2022
- 2022-04-01 CN CN202210347214.0A patent/CN114661725A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105278961A (zh) * | 2015-10-28 | 2016-01-27 | 广州华多网络科技有限公司 | 生成数据库表结构文档的方法及系统 |
CN111241800A (zh) * | 2020-01-17 | 2020-06-05 | 深圳震有科技股份有限公司 | MySQL数据库表结构文档的生成方法、存储介质及智能终端 |
Non-Patent Citations (1)
Title |
---|
一脸问号: "python使用dmPython API操作数据库", Retrieved from the Internet <URL:blog.csdn.net/qq_43350987/article/details/120871363> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9633010B2 (en) | Converting data into natural language form | |
US6915306B1 (en) | Automatic generation of data models and accompanying user interfaces | |
US20220342875A1 (en) | Data preparation context navigation | |
US9519636B2 (en) | Deduction of analytic context based on text and semantic layer | |
KR101114189B1 (ko) | 라벨 시스템 - 실행 및 설계 중 텍스트 번역 및 다중 언어지원 | |
WO2006102512A2 (en) | Change control management of xml documents | |
JP2009522695A (ja) | オペレーティングシステムユーザインターフェースを使用して文書および文書オブジェクトにメタデータを付加する方法 | |
JP2006178944A (ja) | 文書を表すファイル・フォーマット、その方法、およびコンピュータ・プログラム製品 | |
US7062751B2 (en) | Sequence analysis method and apparatus | |
US7720814B2 (en) | Repopulating a database with document content | |
US9773003B2 (en) | Computer implemented system and method for investigative data analytics | |
US20070185832A1 (en) | Managing tasks for multiple file types | |
US11836445B2 (en) | Spreadsheet table transformation | |
KR20160117965A (ko) | NoSQL 모델 생성 방법 및 그 장치 | |
JP2010015458A (ja) | プログラム修正支援システム、プログラム修正支援方法、およびプログラム修正支援プログラム | |
US8433729B2 (en) | Method and system for automatically generating a communication interface | |
WO2013154055A1 (ja) | 構造解析装置及びプログラム | |
AU2007200384A1 (en) | Definitions in master documents | |
CN114661725A (zh) | 生成数据表结构说明的方法、系统、装置及存储介质 | |
US7487165B2 (en) | Computer implemented method for retrieving hit count data from a data base system and according computer program product | |
CN111598707A (zh) | 一种页面的生成方法及电子设备 | |
JPWO2007066414A1 (ja) | プログラム、及びデータ抽出方法 | |
JP5696280B1 (ja) | 用語統一システム及び用語統一プログラム、並びに用語統一方法 | |
JP2018055504A (ja) | 情報処理装置 | |
JP3290778B2 (ja) | トラブル分析支援装置 |
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 |