Skip to content

数据库

系统默认的MySQL数据库,可以参考:https://github.com/go-gorm/gorm, 需要MySQL支持

字段类型

  • 创建数据库表当按如下的规则进行字段命名、类型、属性设置和备注后,再生成CRUD代码时会自动生成对应的Api、控制器、业务逻辑、Web页面、表单组件等的一些默认属性
  • 当你了解这些默认技巧后,会有效提高你在实际开发中的生产效率
数据库类型额外属性转换Go类型转换Ts类型表单组件
int, tinyint,small_int,smallint,medium_int,mediumint,serial/intnumberInputNumber(数字输入框)
int, tinyint,small_int,smallint,medium_int,mediumint,serialunsigneduintnumberInputNumber(数字输入框)
big_int,bigint,bigserial/int64numberInputNumber(数字输入框)
big_int,bigint,bigserialunsigneduint64numberInputNumber(数字输入框)
real/float32numberInputNumber(数字输入框)
float,double,decimal,money,numeric,smallmoney/float64numberInputNumber(数字输入框)
bit(1) 、bit(true)、bit(false)/boolbooleanInput(文本输入框,默认)
bit/int64-bytesarrayInputDynamic(动态KV表单)
bitunsigneduint64-bytesarrayInputDynamic (动态KV表单)
bool/boolbooleanInput(文本输入框,默认)
date/*gtime.TimestringDate(日期选择器)
datetime,timestamp,timestamptz/*gtime.TimestringTime(时间选择器)
json/*gjson.JsonstringInput(文本输入框)
jsonb/*gjson.JsonstringInput(文本输入框)
以下为物理类型中包含字段部分时的转换方式,默认情况////
text,char,character/stringstringInput(文本输入框)
float,double,numeric/stringstringInput(文本输入框)
bool/boolbooleanInput(文本输入框,默认)
binary,blob/[]bytestringInput(文本输入框,默认)
int/intnumberInputNumber(数字输入框)
intunsignedintnumberInputNumber(数字输入框)
time/*gtime.TimestringTime(时间选择器)
date/*gtime.TimestringDate(日期选择器)
没有满足以上任何条件的/stringstringInput(文本输入框)

特殊字段默认表单组件

  • 以下字段在不设置表单组件时会默认使用的表单组件
数据库字段字段名称表单组件
status状态字段(任意int/char(1)类型)Select (单选下拉框)
created_at创建时间字段TimeRange (时间范围选择)
任意字串符字段长度>= 200 and <= 500InputTextarea (文本域)
任意字串符字段长度> 500InputEditor (富文本)

特殊字段默认表单验证器

  • 以下字段在不设置表单组件时会默认使用的表单验证器
数据库字段/Go类型字段名称表单验证规则
mobile手机号不为空时必须是手机号码(国内)
qqQQ不为空时必须是QQ号码
email邮箱地址不为空时必须是邮箱格式
id_card身份证号码不为空时必须是15或18位身份证号码
bank_card银行卡号码银行卡号码
password密码密码验证,必须包含6-18为字母和数字
price价格金额验证,最多允许输入10位整数及2位小数
Go类型为uint、uint64正整数非零正整数验证

SQL默认查询方式

  • Go类型取决于数据库物理类型,请参考 [字段类型] 部分
Go类型查询方式
stringLIKE
date,datetime=
int,uint,int64,uint64=
[]int,[]int64,[]uint64IN (...)
float32,float64=
[]byte4=(默认)
time.Time,*gtime.Time=
*gjson.JsonJSON_CONTAINS(json_doc, val[, path])

其他

默认字典选项

  • 数据库字段为 status且类型为任意数字类型的会使用系统默认的状态字典

默认属性

  • 默认必填,当数据库字段存在非空IS_NULLABLE属性时,默认勾选必填验证
  • 默认唯一,当数据库字段索引存在UNI时,默认勾选唯一值验证
  • 默认主键,当数据库字段索引存在PRI时,默认为主键,不允许编辑
  • 默认排序,当数据库字段存在sort时,默认开启排序,添加表单自动获取最大排序增量值并填充表单
  • 默认列名,默认使用字段注释作为表格的列名。当数据库字段未设置注释时,默认使用字段名称作为列名

自动更新/插入

  • 自动更新,当数据库字段为updated_at(更新时间),updated_by(更新者)
  • 自动插入,当数据库字段为created_at(创建时间),created_by(创建者), created_dept(创建部门), tenant_id(租户ID)
  • 软删除,表存在字段deleted_at时,使用表的Orm模型查询条件将会自动加入[ deleted_at IS NULL ],删除时只更新删除时间而不会真的删除数据
  • 树表:不论更新插入,都会根据表中字段pid(上级ID)自动维护level(树等级)和tree(关系树)

操作人字段维护

  • 生成列表中存在并且勾选展示字段created_by(创建者)、updated_by(修改者)、deleted_by(删除者)时,会自动到表sys_user中获取操作人的基本信息摘要.