数据建模(data/*.yml)

数据建模文件为model/data/**/*.yml,其中中间的/**/目录,为模块层次(一个项目可以有多个模块,每个模块可以有多张数据表,数据表是挂在模块项下的。),文件名则对应数据表名,文件中主要参数为:

配置项

配置说明

label

数据表的标签描述

primaryKey

主键名,是为后面fields中的一个域

primaryKeyType

主键生成的规则(MANUAL-手工输入,为缺省模式;UUID-32位以UUID模式自动生成;AUTO_INCREMENT-数据库的自增类型,为整数)

hasStatus

标识是否物理删除,如为TRUE,则会自动生成mda_status域(0-正常 1-删除 2-停用)

hasCreateUpdate

标识是否跟踪创建和更新,会自动生成create_by、create_date、update_by、update_date,分别对应创建者、创建时间、最后修改者、最后修改时间。

fields

是当前数据表项下的各域定义

fields.name

域名

fields.label

域标签名称

fields.type

域类型,数据类型:int,float,decimal,date,datetime,boolean,varchar(?),char(?),blob,file

fields.inputType

输入类型:text,textarea,checkbox,radiobox,select,lookup

fields.dictName

相关字典名,具体字典在model/dictionary中定义

fields.isNull

是否允许为空

fields.primaryKeyTableName

外键域以及所关联的数据表名

数据建模文件样例(model/data/crm/customer.yml):

#标签
label: 客户
#主键
primaryKey: cust_no
#主键生成规则(MANUAL-手工输入(缺省) UUID-UUID AUTO_INCREMENT-自增)
primaryKeyType: UUID
#是否物理删除,会自动生成mda_status域(0正常 1删除 2停用)
hasStatus: false
#是否跟踪创建和更新,会自动生成create_by,create_date,update_by,update_date
hasCreateUpdate: false
#域列表
fields:
#域名
- name: cust_no
#域标签
label: 客户编号
#数据类型:int,float,decimal(19,2)-money,date,datetime,tinyint-boolean,varchar(100),char(10),blob
type: char(32)
#输入类型:text,textarea,checkbox,radiobox,select
inputType: text
#相关字典名
dictName:
#允许为空
isNull: false
- name: cust_name
label: 客户名称
type: varchar(20)
inputType: text
isNull: false
- name: cust_region
#域标签
label: 所在地区
#数据类型:int,float,decimal(19,2)-money,date,datetime,tinyint-boolean,varchar(100),char(10),blob
type: varchar(5)
#输入类型:text,textarea,checkbox,radiobox,select
inputType: select
#相关字典名
dictName: region
#允许为空
isNull: true
- name: cust_address
#域标签
label: 地址
#数据类型:int,float,decimal(19,2)-money,timestamp,tinyint-boolean,varchar(100),char(10),blob
type: varchar(100)
#输入类型:text,textarea,checkbox,radiobox,select
inputType: text
- name: cust_registered_capital
#域标签
label: 注册资金
#数据类型:int,float,decimal(19,2)-money,timestamp,tinyint-boolean,varchar(100),char(10),blob
type: decimal(19,2)
#输入类型:text,textarea,checkbox,radiobox,select
inputType: text
#允许为空
isNull: true