name - 数据表名称stringtitle - 数据表标题stringmigrationRules - 迁移规则MigrationRule[]inherits - 继承数据表string[] | stringfilterTargetKey - 过滤目标键string | string[]fields - 字段定义FieldOptions[][]model - 自定义模型string | ModelStatic<Model>repository - 自定义仓库string | RepositoryTypeautoGenId - 自动生成IDbooleantruetimestamps - 启用时间戳booleantruecreatedAt - 创建时间字段boolean | stringtrueupdatedAt - 更新时间字段boolean | stringtruedeletedAt - 软删除字段boolean | stringfalseparanoid - 软删除模式booleanfalseunderscored - 下划线命名booleanfalseindexes - 索引配置ModelIndexesOptions[]NocoBase 支持多种字段类型,所有字段都基于 FieldOptions 联合类型定义。字段配置包含基础属性、数据类型特定属性、关系属性以及前端渲染属性。
所有字段类型都继承自 BaseFieldOptions,提供通用的字段配置能力:
示例:
name - 字段名称stringhidden - 隐藏字段booleanfalsevalidation - 验证规则ValidationOptions<T>allowNull - 允许空值booleantrueNULL 值defaultValue - 默认值anyunique - 唯一约束boolean | stringfalseprimaryKey - 主键booleanfalseautoIncrement - 自增booleanfalsefield - 数据库列名stringfield 一致)comment - 数据库注释stringtitle - 显示标题stringdescription - 字段描述stringinterface - 界面组件stringtype: 'string' - 字符串字段VARCHARlength: 字符串长度限制trim: 是否自动去除首尾空格示例:
type: 'text' - 文本字段TEXT、MEDIUMTEXT、LONGTEXTlength: MySQL 文本长度类型(tiny/medium/long)示例:
type: 'integer' - 整数字段INTEGER示例:
type: 'bigInt' - 大整数字段BIGINT示例:
type: 'float' - 浮点数字段FLOATprecision: 精度(总位数)scale: 小数位数示例:
type: 'double' - 双精度浮点数字段DOUBLEprecision: 精度(总位数)scale: 小数位数示例:
type: 'real' - 实数字段REALprecision: 精度(总位数)scale: 小数位数示例:
type: 'decimal' - 精确小数字段DECIMALprecision: 精度(总位数)scale: 小数位数示例:
type: 'boolean' - 布尔字段BOOLEAN 或 TINYINT(1)示例:
type: 'radio' - 单选字段BOOLEAN 或 TINYINT(1)示例:
type: 'date' - 日期字段DATEtimezone: 是否包含时区信息示例:
type: 'time' - 时间字段TIMEtimezone: 是否包含时区信息示例:
type: 'datetimeTz' - 带时区日期时间字段TIMESTAMP WITH TIME ZONEtimezone: 是否包含时区信息示例:
type: 'datetimeNoTz' - 不带时区日期时间字段TIMESTAMP 或 DATETIMEtimezone: 是否包含时区信息示例:
type: 'dateOnly' - 仅日期字段DATEtype: 'unixTimestamp' - Unix 时间戳字段BIGINTepoch: 纪元时间示例:
type: 'json' - JSON 字段JSON 或 TEXTtype: 'jsonb' - JSONB 字段JSONB(PostgreSQL)type: 'array' - 数组字段JSON 或 ARRAYdataType: 存储类型(json/array)elementType: 元素类型(STRING/INTEGER/BOOLEAN/JSON)示例:
type: 'set' - 集合字段JSON 或 ARRAYdataType: 存储类型(json/array)elementType: 元素类型(STRING/INTEGER/BOOLEAN/JSON)示例:
type: 'uuid' - UUID 字段UUID 或 VARCHAR(36)autoFill: 自动填充示例:
type: 'nanoid' - Nanoid 字段VARCHARsize: ID 长度customAlphabet: 自定义字符集autoFill: 自动填充示例:
type: 'uid' - 自定义 UID 字段VARCHARprefix: 前缀pattern: 验证模式示例:
type: 'snowflakeId' - 雪花 ID 字段BIGINTtype: 'password' - 密码字段VARCHARlength: 哈希长度randomBytesSize: 随机字节大小示例:
type: 'encryption' - 加密字段VARCHARtype: 'virtual' - 虚拟字段type: 'context' - 上下文字段dataIndex: 数据索引路径dataType: 数据类型createOnly: 仅创建时设置示例:
type: 'belongsTo' - 属于关系target: 目标数据表名称foreignKey: 外键字段名targetKey: 目标表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束示例:
type: 'hasOne' - 拥有一个关系target: 目标数据表名称foreignKey: 外键字段名sourceKey: 源表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束示例:
type: 'hasMany' - 拥有多个关系target: 目标数据表名称foreignKey: 外键字段名sourceKey: 源表键字段名sortBy: 排序字段sortable: 是否可排序onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束示例:
type: 'belongsToMany' - 多对多关系target: 目标数据表名称through: 中间表名称foreignKey: 外键字段名otherKey: 中间表另一端外键sourceKey: 源表键字段名targetKey: 目标表键字段名onDelete: 删除时的级联操作onUpdate: 更新时的级联操作constraints: 是否启用外键约束示例: