首页 / 一种数据模型设计器

一种数据模型设计器实质审查 发明

技术领域

[0001] 本发明涉及计算机领域,特别是涉及一种数据模型设计器。

相关背景技术

[0002] 客户端无法和web程序进行联动,不能浏览和管理数据库。Navicat和Dbeaver支持的是数据库的基本操作,不能将两个表增加一对多或多对多关系,不能在界面维护表和表之间的关系。Navicat和Dbeaver看到的是数据库授权的表,不能实现将同一个数据库进行区域划分。
[0003] 因此,亟需提供一种数据库中数据模型的新的设计方法,能够提高数据库管理的便捷性和实用性。

具体实施方式

[0043] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044] 本发明的目的是提供一种数据模型设计器,能够支持将在线设计数据模型,为开发者节省大量时间,提高数据库管理的便捷性和实用性。
[0045] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0046] 如图1所示,本发明所提供的一种数据模型设计器包括:数据模型设计界面、数据模型加载器、数据库同步器、SQL导出器以及数据库适配器。
[0047] 所述数据模型设计界面用于显示表结构和表之间关系,提供建表结构,修改表结构,删除表,修改字段,配置字段校验,定义项目名称、表前缀、表正则表达式以及数据库类型。
[0048] 所述数据模型加载器用于加载数据库里的表结构以及表之间关系,并转换为所述数据模型设计界面的格式。
[0049] 所述数据库同步器用于将所述数据模型设计界面确定的表结构和表之间关系同步到数据库,以及将数据库的表结构和表之间关系同步到所述数据模型设计界面。
[0050] SQL导出器用于将数据库中的SQL导出成SQL文件。
[0051] 所述数据库适配器用于与不同的数据库进行适配。所述不同的数据库包括:MySQL关系数据库以及Oracle关系数据库。
[0052] 数据模型设计界面的布局为,每个表会经过后台计算摆放位置,避免重叠在一起,按当前页面上一个表集合里最大的x、y坐标,当行未满时横向移动10像素,若是行已满则获取最大y值下移10像素,x从0开始计算。每次保存时会记录上一次各个表的位置,下次打开后自动摆放位置,新表则添加到最后位置。
[0053] 如图2所示,新建表结构时,在数据模型设计界面上点击+新表时,会自动按固定前缀_m_表命名,同时添加固定的主键和6个固定字段,避免用户手动添加的工作量。
[0054] 如图3所示,当编辑表时,点击编辑某个表时,可以编辑表信息和表字段信息。支持设计增改查页面,设计字段是否显示,字段输入方式(包括输入框,下拉框,图片,单选,多选)。
[0055] 当编辑字段时,如图4所示,支持字段的非标准属性(标准属性是:主键,唯一,非空,名称,类型,长度,备注),如:名称列,在列表显示,必填,支持导出。这些非标准属性主要用于生成代码使用,例如名称列用于关联查询出现在下拉框里这个数据的名称;在列表显示表示这个字段会出现在列表上;支持导出表示导出excel时这个字段会出现;另外可以追加或删除字段或移动字段位置。
[0056] 如图5所示,勾选了校验,则会出现对应的校验规则和不符合规则时的提示词;添加的字段校验在提交后会附着在字段上作为字段的校验规则。在生成代码的时候自动添加校验代码。
[0057] 如图6所示,用户长按某个非主键字段拖动时会出现一根连接线,用户拖动线连接到另外一个表的主键字段时,放开鼠标后连接线就会判断,若是字段类型相同就会自动变为一对多关系;如图7所示,一对多用1‑‑‑> 的连线表示,当连接的两个字段不一致时会提示让用户自己决定一对多还是多对多关系,因为一般一对多关系的两个字段类型应该是一致的;如图8所示,多对多关系一般是两个主表的主键相关联,例如图中将订单和产品的主键id相关联,就会自动以多对多关联;关联后的效果如图9所示,关联后数据库会自动生成一张关联表r_orders_products。
[0058] 如图10所示,所述数据模型加载器的工作流程为:连接数据库适配器;获取数据库中所有表结构,按表前缀过滤,再按正则过滤,屏蔽自动创建的关联表;查找每个表的主键;抽取每个字段作为对象;读取表和表之间的关联关系;所述关联关系为一对多关系或多对多关系;将关联关系的字段对象相互关联;读取每个字段校验规则;字段校验规则为字段是否必填、默认值、最小最大长度以及正则校验规则;获取上一次配置的表;若上一次配置的表与数据库中的表的表名相同,则以数据库中的表为准;若上一次配置的表与数据库中的表的表名不相同,则将数据库中的表和上一次配置的表做并集,进行融合。
[0059] 本发明的数据库同步器主要功能是将数据模型设计器上做的修改同步到数据库中,将用户直接在数据库中修改的动作同步到数据模型设计器上。
[0060] 表信息表、字段信息表、字段校验信息表和表关联关系表这四个表对应的是数据模型设计器展示的表,而数据库里的表结构是实际最后的表结构。
[0061] 如图11所示,当在数据模型设计界面执行保存表操作时会将表结构先同步到数据库里对应的表结构后,再同步覆盖表信息表、字段信息表、字段校验信息表中的数据。
[0062] 当执行保存整个数据模型设计界面时,会把所有的表结构、表关系传入后端,后端循环处理每个表,最后根据表和表之间的关系是一对多还是多对多进行处理,多对多时自动创建关联表,若是关联表已经存在则覆盖。当删除表时先删除表信息表、字段信息表、字段校验信息表、表关联关系表这四个表数据,最后把对应的表和关联表一起删除。
[0063] 如图12所示,若是用户已经有自己的数据模型,则用户会把数据模型直接导入数据库,或后期DBA在数据库上直接维护表结构,这时用户又想通过数据模型设计器来修改数据模型,这时就需要从数据库同步到数据模型设计器。主要思路是读取数据库里所有表结构,根据表命名规则来区分主表和关系表,一般主表命名为 _m_ ,关系表命名为: _r_。程序比较数据库里的表结构和记录表里的记录,进行合并,然后删除多余字段,以数据库为准。
[0064] 主表命名规则是:表前缀_主表名;主表主键字段命名为主表名_id。
[0065] 关系表命名规则是:表前缀_主表名1_主表名2。
[0066] 关系表主键命名规则是:主表名1_主表名2_id。
[0067] 如图13所示,关联表匹配主表的流程为:采用正则表达式拆解关系表表名为两个主表的名称;根据拆解得到的主表名称分别查找对应的主表;将对应的主表的关系记录创建出来。
[0068] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0069] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页 第1页 第2页 第3页
相关技术
模型设计相关技术
设计器相关技术
姚福源发明人的其他相关专利技术