在前面文章中,我們通過一系列案例介紹了表單設計的一些基本功能,表單設計起到非常重要作用,也是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