一种数据库建表代码的生成方法和系统技术方案

技术编号:33911390 阅读:22 留言:0更新日期:2022-06-25 19:31
本发明专利技术公开了一种数据库建表代码的生成方法和系统,属于数据库技术领域,所述生成方法包括:获取数据模型及其与数据库类型的转换规则,所述数据模型包括表结构信息;根据数据库类型及其相应的转换规则,将所述数据模型转换为建表模型;获取代码模板;根据所述建表模型,修改所述代码模板的参数,获得建表代码。通过数据模型实现不同数据库类型的建表代码生成实现数据模型的快速部署和快速生成建表代码,节约了建表代码的开发时间。节约了建表代码的开发时间。节约了建表代码的开发时间。

【技术实现步骤摘要】
一种数据库建表代码的生成方法和系统


[0001]本专利技术涉及数据库
,具体涉及一种数据库建表代码的生成方法和系统。

技术介绍

[0002]随着数据库类型的多元化和多样化,开发数据库的建表代码或建表脚本的工作量也日趋增多,对于不同的数据库都需要定义不同的数据类型和语法结构,开发人员通常需要了解不同类型的数据库及其数据类型和语法,以应对不同的业务需求。因此,数据库建表代码的开发速度慢,无法满足快速开发的要求。

技术实现思路

[0003]针对现有技术中存在的上述技术问题,本专利技术提供一种数据库建表代码的生成方法和系统,快速生成多种数据库类型的建表代码,节约开发时间。
[0004]本专利技术公开了一种数据库建表代码的生成方法,所述生成方法包括:获取数据模型和数据库类型的转换规则,所述数据模型包括表结构信息;根据数据库类型及其相应的转换规则,将所述数据模型转换为建表模型;获取代码模板;根据所述建表模型,修改所述代码模板的参数,获得建表代码。
[0005]优选的,修改建表参数的方法:
[0006]获取建表参数;
[0007]将所述建表参数替换到或添加到所述建表模型中。
[0008]优选的,通过设置界面,获得建表参数,
[0009]所述建表参数包括以下信息或它们的组合:
[0010]数据存储路径、分隔符、注释、主键、外键和索引。
[0011]优选的,所述表结构信息包括以下任一信息或它们的组合:
[0012]字段、表描述、表名、表类型、用户名、数据库类型、主题类别、表层次、主题域、分布类别、分类粒度、表状态、字符集、表说明、表编码、字段描述、字段代码、字段类型、字段精度、主键、唯一键、外键、非空、实体关系、关系类型、分布类型、分布序号、分布内容、默认值、字段说明、字段编码和表结束;
[0013]其中,所述表类型包括维度表、事实表、聚集表、系统表、应用表、临时表、性能表或资源表,
[0014]所述数据库类型包括以下任一数据库或它们的组合:ORACLE、HIVE、GBASE、MYSQL和PostgreSQL,
[0015]所述表层次包括:原始数据层、数据缓存层、数据仓库层和数据集市层,
[0016]所述主题域包括:业务域、客户域、资源域、运维域、公共域、产品域或市场营销域,
[0017]分布类别包括分区或分表,
[0018]分布粒度包括:5分钟、15分钟、小时、日、月、周、季度或年。
[0019]优选的,所述转换规则包括字段数据类型转换规则,
[0020]根据所述字段类型转换规则将数据模型的字段数据类型转换为数据库字符集相应的字段数据类型,
[0021]字段数据类型的参数包括数据类型、类型名称、精度、P范围、S范围和单位。
[0022]优选的,所述表结构信息包括枚举信息,所述数据模型中定义有枚举信息的枚举值;
[0023]所述枚举信息包括表状态、内容类型、内容类型与数据库类型的关系、数据库类型与字符集的关系、数据库类型与存储格式的关系、数据库类型与压缩类型的关系、压缩类型与存储格式的关系。
[0024]本专利技术还提供一种用于实现上述生成方法的系统,包括第一获取模块、建表模块、第二获取模块和代码生成模块,
[0025]所述第一获取模块用于获取数据模型和数据库类型的转换规则,所述数据模型包括表结构信息;
[0026]所述建表模块用于数据库类型及其相应的转换规则,将所述数据模型转换为建表模型;
[0027]所述第二获取模块用于获取代码模板;
[0028]所述代码生成模块用于根据所述建表模型,修改或替换所述代码模板的参数,获得建表代码。
[0029]优选的,所述系统还包括参数设置模块,所述参数设置模块包括设置界面,所述设置界面用于获取建表参数;
[0030]所述建表参数包括以下信息或它们的组合:
[0031]数据库类型、数据存储路径、分隔符、注释、主键、外键和索引;
[0032]所述建表模块用于根据所述数据存储路径、分隔符、注释、主键、外键和索引,修改所述建表模型。
[0033]优选的,所述系统还包括元数据存储模块,所述元数据存储模块用于保存建表模型;
[0034]所述代码生成模块从所述元数据存储模块中读取建表模型。
[0035]优选的,所述系统还包括封装模块,所述封装模块用于封装所述建表代码。
[0036]与现有技术相比,本专利技术的有益效果为:通过数据模型实现不同数据库类型的建表代码生成实现数据模型的快速部署和快速生成建表代码,节约了建表代码的开发时间。
附图说明
[0037]图1是本专利技术的数据库建表代码的生成方法流程图;
[0038]图2是本专利技术的系统逻辑框图。
具体实施方式
[0039]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0040]下面结合附图对本专利技术做进一步的详细描述:
[0041]一种数据库建表代码的生成方法,如图1所示,所述生成方法包括:
[0042]步骤101:获取数据模型及其与数据库类型的转换规则,所述数据模型包括表结构信息。
[0043]例如,所述表结构信息包括以下任一信息或它们的组合:字段、表描述、表名、表类型、用户名、数据库类型、主题类别、表层次、主题域、分布类别、分类粒度、表状态、字符集、表说明、表编码、字段描述、字段代码、字段类型、字段精度、主键、唯一键、外键、非空、实体关系、关系类型、分布类型、分布序号、分布内容、默认值、字段说明、字段编码和表结束。其中,所述表类型包括维度表、事实表、聚集表、系统表、应用表、临时表、性能表或资源表,所述数据库类型包括以下任一数据库或它们的组合:ORACLE、HIVE、GBASE、MYSQL和PostgreSQL。所述表层次包括:原始数据层、数据缓存层、数据仓库层和数据集市层。所述主题域包括:业务域、客户域、资源域、运维域、公共域、产品域或市场营销域。分布类别包括分区或分表,分布粒度包括:5分钟、15分钟、小时、日、月、周、季度或年。其中,转换规则用于描述数据模型与数据库类型之间的转换关系。
[0044]步骤102:根据数据库类型及其相应的转换规则,将所述数据模型转换为建表模型。即根据数据库类型及其相应的转换规则和数据模型生成建表模型。
[0045]步骤103:获取代码模板。
[0046]步骤104:根据所述建表模型,修改或替换所述代码模板的参数,获得建表代码。
[0047]通过数据模型实现不同数据库类型的建表代码生成实现数据模型的快速部署和快速生成建表代码,节约了建表代码的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库建表代码的生成方法,其特征在于,所述生成方法包括:获取数据模型及其与数据库类型的转换规则,所述数据模型包括表结构信息;根据数据库类型及其相应的转换规则,将所述数据模型转换为建表模型;获取代码模板;根据所述建表模型,修改所述代码模板的参数,获得建表代码。2.根据权利要求1所述的生成方法,其特征在于,还包括修改建表参数的方法:获取建表参数;将所述建表参数替换到或添加到所述建表模型中。3.根据权利要求2所述的生成方法,其特征在于,通过设置界面,获得建表参数,所述建表参数包括以下信息或它们的组合:数据存储路径、分隔符、注释、主键、外键和索引。4.根据权利要求1所述的生成方法,其特征在于,所述表结构信息包括以下任一信息或它们的组合:字段、表描述、表名、表类型、用户名、数据库类型、主题类别、表层次、主题域、分布类别、分类粒度、表状态、字符集、表说明、表编码、字段描述、字段代码、字段类型、字段精度、主键、唯一键、外键、非空、实体关系、关系类型、分布类型、分布序号、分布内容、默认值、字段说明、字段编码和表结束;其中,所述表类型包括维度表、事实表、聚集表、系统表、应用表、临时表、性能表或资源表,所述数据库类型包括以下任一数据库或它们的组合:ORACLE、HIVE、GBASE、MYSQL和PostgreSQL,所述表层次包括:原始数据层、数据缓存层、数据仓库层和数据集市层,所述主题域包括:业务域、客户域、资源域、运维域、公共域、产品域或市场营销域,分布类别包括分区或分表,分布粒度包括:5分钟、15分钟、小时、日、月、周、季度或年。5.根据权利要求4所述的生成方法,其特征在于,所述转换规则包括字段数据类型转换规则,根据所述...

【专利技术属性】
技术研发人员:张彬
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1