元数据管理—动态表单设计器在crudapi系统中完整实现
表单设计
在前面文章中,我们通过一系列案例介绍了表单设计的一些基本功能,表单设计起到非常重要作用,也是crudapi核心,所以本文会详细介绍表单设计中一些其它功能。
概要
表单字段column属性
列英文名称 | 描述 |
---|---|
name | 英文名称 |
caption | 中文名称 |
autoIncrement | 是否自增长 |
description | 描述 |
displayOrder | 序号,UI中显示的顺序 |
dataType | 数据类型,比如字符串、整数等 |
seqId | 序列号ID,用于设置流水号 |
indexName | 索引名称 |
indexStorage | 索引存储, 支持BTREE、HASH |
indexType | 索引类型,支持PRIMARY, UNIQUE, INDEX, FULLTEXT |
length | 长度 |
precision | 精密度、精确(精度),表示该字段的有效数字位数 |
scale | 刻度、数值范围,表示该字段的小数位数 |
nullable | 是否可为空 |
unsigned | 是否无符号 |
insertable | 是否可插入 |
queryable | 是否可查询 |
systemable | 是否系统字段 |
updatable | 是否可修改 |
createdDate | 创建时间 |
lastModifiedDate | 修改时间 |
以上属性不是所有的都同时有效,比如unsigned只有在dataType为数字的时候才有效,为字符串的时候会忽略,其它情况的类似。
系统字段
创建表单的时候会默认添加5个系统字段,分别是编号id,名称name,全文索引fullTextBody,创建时间 createdDate和修改时间lastModifiedDate,以customer为例,系统字段json内容如下:
[{ "autoIncrement": true, "caption": "编号", "createdDate": 1613181300985, "dataType": "BIGINT", "description": "主键", "displayOrder": 0, "id": 253, "indexType": "PRIMARY", "insertable": false, "lastModifiedDate": 1613182114133, "length": 20, "name": "id", "nullable": false, "queryable": false, "systemable": true, "unsigned": true, "updatable": false}, { "autoIncrement": false, "caption": "名称", "createdDate": 1613181300985, "dataType": "VARCHAR", "description": "名称", "displayOrder": 1, "id": 254, "insertable": true, "lastModifiedDate": 1613182114133, "length": 200, "name": "name", "nullable": false, "queryable": true, "systemable": true, "unsigned": false, "updatable": true}, { "autoIncrement": false, "caption": "全文索引", "createdDate": 1613181300985, "dataType": "TEXT", "description": "全文索引", "displayOrder": 2, "id": 255, "indexName": "ft_fulltext_body", "indexType": "FULLTEXT", "insertable": false, "lastModifiedDate": 1613182114133, "name": "fullTextBody", "nullable": true, "queryable": false, "systemable": true, "unsigned": false, "updatable": false}, { "autoIncrement": false, "caption": "创建时间", "createdDate": 1613181300985, "dataType": "DATETIME", "description": "创建时间", "displayOrder": 3, "id": 256, "insertable": false, "lastModifiedDate": 1613182114133, "name": "createdDate", "nullable": false, "queryable": false, "systemable": true, "unsigned": false, "updatable": false}]
唯一性索引
索引类型包括主键、全文、普通、唯一,全文索引之前已经介绍过了,普通索引主要是为了提高查询效率,这里主要介绍一下唯一性索引
客户表mobile手机字段创建唯一性索引,表示手机号不允许重复
添加客户时,录入添加已经存在的手机号,提示重复错误,和期望的一致,唯一性索引可以防止数据重复。
联合索引
如果索引只有一个字段,在设置列属性的时候直接设置。如果是多个字段联合索引,就需要单独设置了。这里可以创建普通或唯一两种类型的联合索引,通过下拉框选择多个字段。
比如给customer设置一个联合索引,最终得到的索引功能和之前单个字段索引类似。
附件
附件类型字段支持保存附件,主要是文档、图片等
设置文件file表的url链接字段属性为ATTACHMENT
录入数据时候,附件字段可以上传文件,如果是图片可以预览。
表单设计API
表单设计提供了API,如果默认提供的后台管理UI不适合,可以二次开发,重新设计UI,通过API管理表单,API文档如下:
https://demo.crudapi.cn/swagger-ui.html
Postman查询customer表单元数据。
小结
本文介绍了表单设计完整功能,既可以通过UI配置实现,也可以通过API进行二次开发。
附demo演示
本系统属于产品级的零代码平台,不同于自动代码生成器,不需要生成Controller、Service、Repository、Entity等业务代码,程序运行起来就可以使用,真正0代码,可以覆盖基本的和业务无关的CRUD RESTful API。
官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login
更多相关文章
- 外媒:谷歌Dragonfly项目仍在推进,6-9个月内推出中国版搜索引擎
- 死磕这50道MySQL面试题,阿里面试官直呼内行(上)
- MySql引擎原理以及优化
- Phoenix全局索引设计实践
- HBase应用与发展之HBase RowKey与索引设计
- 中文分词文章索引和分词数据资源分享
- 被敖丙用烂的「数据库调优」连招?真香,淦!
- 一口气搞懂MySQL索引所有知识点
- 视频 | 搜索引擎中的 web 数据挖掘