当前位置: 首页 > 专利查询>夏之泉专利>正文

一种数据库结构生成方法及装置制造方法及图纸

技术编号:33311092 阅读:10 留言:0更新日期:2022-05-06 12:23
本申请公开了一种数据库结构生成方法及装置,该方法包括:读取每个功能模块中的数据库结构定义;解析所述数据库结构定义;合并每个功能模块中所述解析后的数据库结构定义并生成系统需要的所有数据库结构定义;提交所述合并生成的数据库结构定义给数据库管理程序。本发明专利技术提供的数据库结构生成方法不需要共用的数据库结构定义代码文件,只需要将所需的数据库结构定义按需放置在相应功能模块内部,即可实现自动生成数据库结构,提高了代码的可扩展性,提高了开发效率;并且通过解耦不同功能模块间数据库结构的定义,降低了功能模块间重用数据库结构的复杂度,降低了开发维护成本,减少了混乱。减少了混乱。减少了混乱。

【技术实现步骤摘要】
一种数据库结构生成方法及装置


[0001]本专利技术涉及计算机
,尤其是涉及一种数据库结构生成方法及装置。

技术介绍

[0002]软件系统的数据库(Database,简称DB)通常是指通过数据库管理程序生成的数据库结构和存储于此数据库结构中的数据,数据库是软件系统的基础。在软件开发过程中,数据库相关的工作主要包括数据库结构的定义和数据存取以及数据处理逻辑的实现,而数据库结构的定义是任何数据处理和数据使用的基础。较好的数据库结构定义可以增加数据的可管理性、提高数据的存取效率、优化数据的处理性能等。
[0003]开发人员在定义数据库结构时,主要的方式为通过特定的代码文件定义系统中所需要的数据库结构,或在特定的代码存储位置集中存储所有数据库结构定义代码文件。当系统被编译或直接运行时,相应的数据库结构定义将被解析,从而被数据库管理程序转换为其内部的结构以存储相应数据。这种方式需要将系统中所有的数据库结构定义代码集中到预先约定的存储位置,使得任何对现有数据库结构定义的扩展以及当新功能模块需要使用新的数据库结构定义时,都必须修改统一的数据库结构定义代码文件或将新的数据库结构定义代码文件存储至约定的位置,扩展性较差。特别是当系统复杂,功能模块数量大的时候,系统数据库结构的定义也会越来越复杂,代码量越来越大,不方便管理。且数据库结构的定义不能和相应功能模块的代码一起独立存储,而是混在整套系统的公用代码中,使得系统代码结构复杂化,耦合性提高,增加了开发人员的开发成本和维护成本,且容易产生混乱。
[0004]因此,如何在数据库结构定义工作中,提高可扩展性,降低功能模块间的耦合,降低开发维护成本,避免产生混乱,是本领域技术人员目前需要解决的技术问题。

技术实现思路

[0005]本专利技术实施例的目的在于提供一种数据库结构成生方法,用于提高系统的扩展性、降低功能模块间的耦合、降低开发维护成本、解决容易产生混乱的问题;本专利技术的另一目的是提供一种数据库结构的生成装置,均具有上述有益效果。
[0006]为解决上述技术问题,本专利技术实施例的一个方面提供了一种数据库结构生成方法,包括:读取每个功能模块中的数据库结构定义;解析所述数据库结构定义;合并每个功能模块中所述解析后的数据库结构定义并生成系统需要的所有数据库结构定义;提交所述合并生成的数据库结构定义给数据库管理程序。
[0007]优选的,所述功能模块中的数据库结构定义与所述功能模块代码一起独立于其他功能模块代码存储。
[0008]可选的,所述功能模块中的数据库结构定义可以为单独的代码文件,也可以为附属于模块定义文件中的数据库结构定义代码。
[0009]优选的,所述数据库结构定义,包括:数据库表,用于定义一个独立的存储结构以存储系统中一类数据,一个功能模块可以定义多个需要使用的数据库表。
[0010]所述数据库表,包括:数据字段,用于定义所述数据库表中需要存储的数据,一个数据库表中可以定义多个数据字段。
[0011]所述数据字段,包括:数据字段名称,用于定义所述数据字段的名称;数据字段类型,用于定义所述数据字段的数据类型;数据字段辅助属性,用于定义所述数据字段所需的辅助性信息。
[0012]可选的,所述数据库表,包括:其他用于描述或扩展所述数据库表的扩展信息。
[0013]可选的,所述扩展信息,包括:所述数据库表中的索引信息,用于提高所述数据库表中数据的检索效率;所述数据库表中的计算字段,用于根据所述数据库表中其他数据字段计算出的逻辑数据字段;所述数据库表需要使用的其他辅助信息。
[0014]可选的,所述功能模块可以定义已经在其他功能模块中定义的数据库表,以扩展所述其他功能模块的功能。
[0015]进一步,当所述功能模块中定义的数据库表已经被定义在所述其他功能模块中时,所述数据库表的最终结构将通过合并所述功能模块以及所述其他功能模块中对所述数据库表的定义生成。
[0016]可选的,所述合并,包括:当所述功能模块对所述数据库表的定义比所述其他功能模块中定义的所述数据库表新增数据字段时,所述数据库表的最终结构将添加所述新增数据字段;当所述功能模块对所述数据库表的定义与所述其他功能模块中定义的所述数据库表有相同数据字段时,所述数据库表的最终结构将合并所述数据字段信息,信息冲突时,以较晚载入的功能模块中的定义为准。
[0017]优选的,所述功能模块不能删除所述其他功能模块已经定义的数据库表或数据库表中的数据字段。
[0018]进一步,当所述功能模块需要使用所述其他功能模块中已经定义的数据库表,但所述其他功能模块中定义的所述数据库表结构中的数据字段不足以支持所述功能模块的功能逻辑时,所述功能模块可定义所述数据库表,并在其中定义所需要使用的新的数据字段,不需要定义所述其他功能模块中已经定义且不需要扩展的其他数据字段。
[0019]进一步,当所述功能模块需要使用所述其他功能模块中已经定义的数据库表,但所述其他功能模块中定义的所述数据库表结构中的数据字段属性不足以支持所述功能模块的功能逻辑时,所述功能模块可定义所述数据库表,并在其中定义需要扩展的数据字段,不需要定义所述其他功能模块中已经定义且不需要扩展的其他数据字段。
[0020]本专利技术的另一有益效果是,当软件系统被切割成多个功能模块分别开发时,开发
人员只需要关注其所负责的功能模块所需要的数据库结构,并在其负责的功能模块内定义其所需要的数据库结构即可,系统增加或减少功能模块时,不需要考虑交织在一起的数据库结构定义的切割。从而降低了各功能模块之间的耦合,提高了代码的可维护性。
[0021]基于同样的专利技术构思,本专利技术实施例还提供了一种数据库结构的生成装置,该装置包括:读取模块,用于读取各功能模块中的数据库结构定义代码文件;解析模块,用于解析所述数据库结构定义代码文件,提取并解析其中的数据库结构定义;合并模块,用于合并各功能模块中所述解析出的数据库结构定义,并将最终的数据库结构定义提交至数据库管理程序。
[0022]可选地,所述读取模块,包括:功能模块遍历子模块,用于遍历读取系统中所有需要加载的功能模块;数据库结构定义提取子模块,用于从所述功能模块遍历子模块所读取的功能模块中提取数据库结构定义部分。
[0023]可选地,所述解析模块,包括:数据库表解析子模块,用于从所述读取模块提取的数据库结构定义中解析出数据库表结构;数据库字段解析子模块,用于解析所述数据库表解析子模块解析出的数据库表结构,以生成所述数据库表中的数据库字段结构。
[0024]可选地,所述合并模块,包括:数据库字段合并子模块,用于合并所述解析模块从多个功能模块中解析出的数据库字段,以生成每个数据库字段最终的结构定义;数据库表合并子模块,用于合并所述解析模块从多个功能模块中解析出的数据库表结构,并使用所述数据库字段合并子模块生成的数据库字段最终结构定义作为所述数据库表结构中的数据字段结构;数据库模型生成子模块,用于将所述数据库表合并子模块合并生成的数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库结构生成方法,其特征在于,所述方法包括:读取每个功能模块中的数据库结构定义;解析所述数据库结构定义;合并每个功能模块中所述解析后的数据库结构定义并生成系统需要的所有数据库结构定义;提交所述合并生成的数据库结构定义给数据库管理程序。2.根据权利要求1所述的数据库结构生成方法,其特征在于,所述数据库结构定义为所述功能模块所需要使用到的数据库表结构定义;这些数据库表结构定义可能在其他功能模块中已有定义,也可能尚未在任何功能模块中定义。3.根据权利要求1所述的数据库结构成方法,其特征在于,所述合并生成的数据库结构定义为当前软件系统所需要的所有数据库结构定义。4.根据权利要求2所述的数据库结构成方法,其特征在于,所述数据库表结构定义,包括:数据字段定义;其他扩展描述信息。5.根据权利要求4所述的数据库结构生成方法,其特征在于,所述数据字段定义,包括:数据字段的名称;数据字段的数据类型;数据字段其他属性定义。6.根据权利要求5所述的数据库结构生成方法,其特征在...

【专利技术属性】
技术研发人员:夏之泉
申请(专利权)人:夏之泉
类型:发明
国别省市:

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

1