视图数据集
这里指的视图,是指数据库的视图(View)。也就是说, 平台的视图数据集,就是对应数据库中的视图。
视图数据集用于定义多表关联的物理数据库视图。在平台定义视图数据集后,可以在物理数据库同步生成相应的视图。反过来,如果数据库中已存在了视图,也可以逆向生成视图数据集来使用。
数据集设计
数据集可以采用两种方式进行设计:
正向设计
在动态数据集的右侧,点击+按钮,可以创建新的视图:
设置 SQL 查询语句
创建好视图数据集后,最重要的是设置查询 SQL 语句。SQL 语句的生成,常用的有 2 种方式:
- 使用查询生成向导
适合常规、简单的查询逻辑,UI 上可以配置查询列,以及配置多表关联查询
设置后,会在查询语句输入框自动生成对应的 SQL 语句:
- 直接写 SQL 语句
对一些比较复杂的、个性化的查询逻辑,可以直接写在输入框中写入 SQL 语句。在输入框写入之前,比较好的实践经验是,先在 adminer 在线数据库管理工具中进行组装和测试,获取返回结果是不是期望的内容,例如:
测试结果没问题之后,再放入到输入框中:
设计返回结构
视图数据集要返回的列,可以在结构页签中自行设计。需要快捷操作的话,可以点击自动同步功能,会根据返回的列,自动把结构对应添加上去:
通过以上设置好 SQL 查询语句和返回结构后,点击保存,会自动在物理数据库同步生成对应的视图。
逆向设计
创建方式
如果数据库中已经存在了视图,那么平台的视图数据集不用手动重新创建,可以从导入向导直接生成视图数据集。操作如下:
弹出的对话框,会显示数据库中已有的表和视图,选择要导入的视图即可:
配置说明
逆向设计的数据集,和正向设计区别最大的主要在 2 个地方:
- 禁止建视图的配置会勾选上,用户不在数据集这边维护视图的 SQL 语句
- 数据菜单不提供查询数据功能,需要自行在数据库中查询
保存路径
- 数据集的模型描述文件
xxx.data.m 保存在当前模块的根目录下,比如 main 模块的根目录下:
在 .data.m 文件中,会使用 <class type="view" 来标识视图:
- 数据集在数据库的对应关系
由于视图是一种虚拟表,它是根据查询条件动态返回查询结果,数据并没有再存一份于数据库中。因此视图数据集在数据库中只是对应新建了一个视图。
视图数据集默认生成的数据库视图名,会在数据集标识前边加上模块标识,比如在 main 模块下,数据库视图名会自动拼接为 main_xxx。
如果需要自定义这块的数据库视图名,可以在以下截图处修改:
使用场景
由于视图数据集只是用来做查询使用的,所以涉及到数据的查询、统计和展示,就可以使用视图数据集来实现。
视图数据集,在前端页面会以数据组件的方式来使用。
将数据集拖动到页面后,该数据组件就会在各组件进行绑定使用了。这里和表数据集使用比较类似,这里不再赘述。
需要注意的是,平台定义好的视图数据集,引入到页面中使用,可以额外设置返回数据列、过滤条件、排序和关联查询等功能。设置如下: