CN114546988A - 一种支持多字段类型markdown数据库文档转sql建表语句的方法 - Google Patents
一种支持多字段类型markdown数据库文档转sql建表语句的方法 Download PDFInfo
- Publication number
- CN114546988A CN114546988A CN202210120377.5A CN202210120377A CN114546988A CN 114546988 A CN114546988 A CN 114546988A CN 202210120377 A CN202210120377 A CN 202210120377A CN 114546988 A CN114546988 A CN 114546988A
- Authority
- CN
- China
- Prior art keywords
- field
- character string
- template
- data
- markdown
- 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 30
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000013461 design Methods 0.000 claims description 6
- 230000002123 temporal effect Effects 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract 1
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000126 substance Substances 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/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种支持多字段类型markdown数据库文档转sql建表语句的方法,属于数据处理领域,本发明采用将数据和格式进行分离的方式来解决这个问题,将文本内容划分为模板和数据两个部分,模板可以固定格式,提升了文本处理的灵活度和处理速度。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种支持多字段类型markdown数据库文档转sql建表语句的方法。
背景技术
Markdown作为一种轻量级标记语言,它能将纯文本导出为XHTML、HTML、PDF 以及.md文档,具有易读易写、直观和学习成本低等优点,极大的提升了人们在日常记录文档时的简易性。
由于Markdown的轻量化、易读易写特性,并且对于图片,图表、数学式都有支持,许多网站都广泛使用Markdown来撰写帮助文档或是用于论坛上发表消息。
工作中使用Markdown来编写mysql数据表可以使得开发人员能够清晰的获取当前各张表格的设计情况,可以借此对方案的设计进行讨论优化,如果后续数据表内容发生更新时,表格不需重构,只需更改更新部分的内容即可,减少工作量。但是Markdown数据表在sql建表时缺乏简洁有效的方法,在将Markdown上的数据表转化为sql建表语句的过程中往往会耗费较多的精力。
发明内容
为了解决以上技术问题,本发明提供了一种支持多字段类型markdown数据库文档转sql建表语句的方法,简化建表过程,缩短建表时间,同时也为使用者减少了出现错误的几率,具有较高的可用性。
本发明的技术方案是:
一种支持多字段类型markdown数据库文档转sql建表语句的方法,
将数据和格式进行分离,把文本内容划分为模板和数据两个部分,模板可固定格式。
进一步的,
分为三部分:
初始化模板,模板的设计可根据自身需求做出相应的调整,支持个性化;
处理数据,采用将数据文本进行处理拼接;
返回结果,将拼接好的sql语句保存为json,返回结果。
其中,
初始化模板,需要配置CHAR、VARCHAR、INT参数。
然后制定数据格式,#号为表名,然后接空格,注释表名;表头设置为3列,字段|参数|备注。
数据库引擎设置为innodb,使用utf-8编码,建表前删除同名表重建。
进一步的,
处理数据,包括:
1)接收用户输入的Markdown格式的数据库文本;
2)将数据库文本按照不同字段分割为一个以上的字符串,存入数组;
3)判断数组中数据是否符合字段名、字段属性字符串、注释的格式;
4)逐个从数组中的字符串中提取出该字段的字段名、字段属性字符串以及字段注释。
5)根据设置的类型对应获取字段类型;
6)根据字段属性字符串中字段类型后的数字获取该字段长度;
7)根据字段属性字符串中是否存在“key”判断该字段是否为主键;
8)根据字段属性字符串中是否存在“auto”判断该字段是否自增;
9)若字段属性字符串中存在“null”则判断该字段可以为空,如存在“not null”则判断该字段为非空;
10)字段默认值可以分为文本类、数字类和时间类默认值;
11)将上述字段信息进行拼接。
再进一步的,
步骤5)中,设置的字段类型可自行扩展。
本发明的有益效果是
1、支持多字段类型markdown文档转sql建表语句的方法,简洁的实现文档到数据表的转换,提升了用户的工作效率,降低了人工成本;
2、支持多字段类型markdown文档转sql建表语句的方法将前期预定好格式的文档统一转化为sql语句,模板引擎格式可定制,使用灵活方便,同时通过这种方法降低了出错的概率。
附图说明
图1是Markdown格式文本生成建表sql语句的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本应用场景中,文本的格式是规定的,但是文本内容各有不同。
针对文本内容比较简单的情况下,可以直接使用代码来生成所需要的文本,但是当文本内容差别较大的时候,直接使用代码处理生成文本的成本就会大大增加,并且在后续维护的过程中也会比较麻烦。因此,采用将数据和格式进行分离的方式来解决这个问题,将文本内容划分为模板和数据两个部分,模板可以固定格式,提升了文本处理的灵活度和处理速度。
本发明提供了一种支持tinyint、mediumint、int、float、double、char、 varchar等众多字段类型的markdown数据库文档转换为mysql建表语句的方法,将原本繁琐费时的建表过程进行了简化,同时可根据使用者的最新需求添加新的可转化字段类型,使用过程灵活便捷。
本方法设计的主要流程可以分为三部分:初始化模板、处理数据、返回结果。
1、初始化模板
模板的设计可以根据自身需求做出相应的调整,支持个性化,下面针对一个示例做出介绍。
1)配置诸如CHAR、VARCHAR、INT等参数;
2)随后制定数据格式,#号为表名,然后接空格,注释表名,例如#sys_base 系统基础表;表头设置为3列,字段|参数|备注,例如id|int 11key auto|主键id;
3)数据库引擎设置为innodb,使用utf-8编码,建表前删除同名表重建。
2、处理数据
1)接收用户输入的Markdown格式的数据库文本;
2)将数据库文本按照不同字段分割为多个字符串,存入数组;
3)判断数组中数据是否符合字段名、字段属性字符串、注释的格式;
4)逐个从数组中的字符串中提取出该字段的字段名、字段属性字符串以及字段注释;
5)根据设置的类型(设置的字段类型可自行扩展)对应获取字段类型;
6)根据字段属性字符串中字段类型后的数字获取该字段长度;
7)根据字段属性字符串中是否存在“key”判断该字段是否为主键;
8)根据字段属性字符串中是否存在“auto”判断该字段是否自增;
9)若字段属性字符串中存在“null”则判断该字段可以为空,如存在“not null”则判断该字段为非空;
10)字段默认值可以分为文本类、数字类和时间类默认值;
11)将上述字段信息进行拼接。
3、返回结果
将拼接好的sql语句保存为json,返回结果。
本方法可以通过规定格式直接将Markdown格式的数据表一键转化为mysql建表语句,提升了转换速率,降低了人工转换耗时,可以将使用者从枯燥繁复的建表过程中解放出来。
同时,使用规定的格式转换也可以在一定程度上减少人为转换过程中容易出现的诸如拼写错误、漏写等问题,提高了准确率,确保了数据的可靠性和可用性。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种支持多字段类型markdown数据库文档转sql建表语句的方法,其特征在于,
将数据和格式进行分离,把文本内容划分为模板和数据两个部分,模板可固定格式。
2.根据权利要求1所述的方法,其特征在于,
分为三部分:
初始化模板,模板的设计可根据自身需求做出相应的调整,支持个性化;
处理数据,采用将数据文本进行处理拼接;
返回结果,将拼接好的sql语句保存为json,返回结果。
3.根据权利要求2所述的方法,其特征在于,
初始化模板,需要配置CHAR、VARCHAR、INT参数。
4.根据权利要求3所述的方法,其特征在于,
制定数据格式,#号为表名,然后接空格,注释表名;表头设置为3列,字段|参数|备注。
5.根据权利要求4所述的方法,其特征在于,
数据库引擎设置为innodb,使用utf-8编码,建表前删除同名表重建。
6.根据权利要求5所述的方法,其特征在于,
处理数据,包括:
1)接收用户输入的Markdown格式的数据库文本;
2)将数据库文本按照不同字段分割为一个以上的字符串,存入数组;
3)判断数组中数据是否符合字段名、字段属性字符串、注释的格式;
4)逐个从数组中的字符串中提取出该字段的字段名、字段属性字符串以及字段注释。
7.根据权利要求6所述的方法,其特征在于,
还包括
5)根据设置的类型对应获取字段类型;
6)根据字段属性字符串中字段类型后的数字获取该字段长度;
7)根据字段属性字符串中是否存在“key”判断该字段是否为主键;
8)根据字段属性字符串中是否存在“auto”判断该字段是否自增;
9)若字段属性字符串中存在“null”则判断该字段可以为空,如存在“not null”则判断该字段为非空;
10)字段默认值可以分为文本类、数字类和时间类默认值;
11)将上述字段信息进行拼接。
8.根据权利要求7所述的方法,其特征在于,
步骤5)中,设置的字段类型可自行扩展。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210120377.5A CN114546988A (zh) | 2022-02-09 | 2022-02-09 | 一种支持多字段类型markdown数据库文档转sql建表语句的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210120377.5A CN114546988A (zh) | 2022-02-09 | 2022-02-09 | 一种支持多字段类型markdown数据库文档转sql建表语句的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546988A true CN114546988A (zh) | 2022-05-27 |
Family
ID=81673712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210120377.5A Pending CN114546988A (zh) | 2022-02-09 | 2022-02-09 | 一种支持多字段类型markdown数据库文档转sql建表语句的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546988A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237936A (zh) * | 2022-09-14 | 2022-10-25 | 北京海致星图科技有限公司 | 检测sql语句中字段的方法、装置、存储介质和设备 |
CN117112806A (zh) * | 2023-10-12 | 2023-11-24 | 北京大学深圳研究生院 | 一种基于知识图谱的信息结构化方法和装置 |
-
2022
- 2022-02-09 CN CN202210120377.5A patent/CN114546988A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237936A (zh) * | 2022-09-14 | 2022-10-25 | 北京海致星图科技有限公司 | 检测sql语句中字段的方法、装置、存储介质和设备 |
CN115237936B (zh) * | 2022-09-14 | 2024-04-05 | 北京海致星图科技有限公司 | 检测sql语句中字段的方法、装置、存储介质和设备 |
CN117112806A (zh) * | 2023-10-12 | 2023-11-24 | 北京大学深圳研究生院 | 一种基于知识图谱的信息结构化方法和装置 |
CN117112806B (zh) * | 2023-10-12 | 2024-01-26 | 北京大学深圳研究生院 | 一种基于知识图谱的信息结构化方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8484552B2 (en) | Extensible stylesheet designs using meta-tag information | |
US7496230B2 (en) | System and method for automatic natural language translation of embedded text regions in images during information transfer | |
US7979793B2 (en) | Graphical creation of a document conversion template | |
US9361294B2 (en) | Publishing tool for translating documents | |
CN114546988A (zh) | 一种支持多字段类型markdown数据库文档转sql建表语句的方法 | |
US8117217B2 (en) | Information processing apparatus and encoding method | |
JP2006172450A (ja) | フォーマットされた文書をウェブページに変換するためのシステムおよび方法 | |
CN101334774A (zh) | 一种字符输入的方法和输入法系统 | |
CN109344374B (zh) | 基于大数据的报表生成方法及装置、电子设备、存储介质 | |
CN109766085B (zh) | 一种处理枚举类型代码的方法及装置 | |
RU2332708C1 (ru) | СПОСОБ СОЗДАНИЯ XML-ДОКУМЕНТА В Web-БРАУЗЕРЕ | |
CN112667563A (zh) | 一种文档管理及操作方法和系统 | |
KR102436549B1 (ko) | 딥러닝을 이용한 자연어처리 기반의 faq 및 챗봇을 위한 학습데이터를 자동으로 생성하기 위한 방법 및 이를 위한 장치 | |
WO2007081017A1 (ja) | 文書処理装置 | |
CN110308907B (zh) | 数据转换方法、装置、存储介质及电子设备 | |
CN101441626A (zh) | 一种多媒体检索系统及其检索方法 | |
CN100347706C (zh) | 一种pdf文档到xml文档转换的方法 | |
Arnold et al. | Beyond lexical frequencies: using R for text analysis in the digital humanities | |
CN112506488A (zh) | 一种基于sql创建语句生成编程语言类的方法 | |
KR102492008B1 (ko) | 회의록 관리 방법 및 장치 | |
CN112817585A (zh) | 一种基于Unity编辑器的Cocos2dx UI界面搭建方法 | |
WO2002082326A2 (en) | Extensible stylesheet designs using meta-tag information | |
CN117033483A (zh) | 一种基于注解实现的报文生成方法、装置、设备及介质 | |
TWM602240U (zh) | 疑似洗錢交易報告轉檔系統 | |
CN118013944A (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 |