跳到主要内容

字段类型详解

数据模型字段是数据源的表结构基础,可以理解为 Excel 表格的表头(列),而数据可以理解为 Excel 表格的行。CloudBase 数据模型支持丰富的字段类型,满足各种业务场景的数据存储需求。

🎯 字段类型概览

CloudBase 数据模型提供了 20+ 种字段类型,涵盖基础数据、格式化验证、媒体文件、内容编辑、时间位置、特殊功能等各个方面:

📊 字段类型完整列表

字段类型DB字段类型使用说明示例
文本/单行string适合标题、姓名等短文本(最长 4000 字节)"张三"
文本/多行string适合描述、备注等长文本(最长 4000 字节)"这是一段描述文字"
布尔值booleantrue 或 falsetrue
数字number支持整数和浮点数123456.78
数组array根据数组元素类型进行校验["技术", "前端", "Vue"]
对象object嵌套的键值对结构{"name": "张三", "age": 25}
JSONobject复杂的数据结构或动态属性{"title": "博客", "tags": ["技术"]}
邮箱string包含 xx\@yy.zz 格式验证"email@qq.com"
电话/固定号码string0开头的2-3位区号或7-8位号码"027-1234567"
电话/手机号码string符合手机号规范的11位字符串"13812341234"
网址string符合网址规范的字符串"https://example.com"
图片string默认从前端组件获得图片的 cloudId"cloud://xxx.xxx.xxx.png"
多媒体/视频string支持 ogm、wmv、mpg、webm、ogv、mov、asx、mpeg、mp4、m4v、avi"cloud://xxx.xxx.xxx/video.mp4"
多媒体/音频string支持 opus、flac、webm、weba、wav、ogg、m4a、oga、mid、mp3、aiff、wma、au"cloud://xxx.xxx.xxx/audio.wav"
富文本string支持格式化、链接、图片(最长 262144 字节)"<h1>标题</h1><p>内容</p>"
Markdownstring支持 Markdown 编辑器和实时预览"# 这是一个Markdown示例"
日期时间number默认从前端组件获取的时间戳(ms)1645977600000
枚举string所填值必须为设置的枚举值中的某一个"牛奶"
地理位置object固定格式的对象,包含地址和坐标{"geopoint": {"type": "Point", "coordinates": [40.56, 5.89]}, "address": "深圳市南山区"}
文件string默认从前端组件获得文件的 cloudId"cloud://xxx.xxx.xxx.pdf"
自动编号string用户不填则后端自动补齐;用户传参则使用客户定义的值"1001"
地区string省级行政区划"陕西省"
关联关系string支持一对一、一对多、多对一存储关联记录的 ID

🔧 自动编号格式说明

自动编号支持三种格式类型:

  1. 字符串前缀{前缀}-{SEQNUM:最小位数+起始值}

    • 示例:CAR-1000, CAR-1001, CAR-1002
  2. 日期前缀{DATETIMEUTC:日期格式}-{SEQNUM:最小位数+起始值}

    • 示例:2024-01-15-0001, 2024-01-15-0002
  3. 自定义格式:支持多种格式组合

    • {SEQNUM:4} - 连续数字:0001, 0002
    • {DATETIMEUTC:yyyy-MM-dd} - 时间日期:2024-01-15
    • {RANDSTRING:4} - 随机字符串:AB7L

⚙️ 字段通用配置

基础配置项

配置项说明规则
字段名称字段的显示名称支持中英文
字段标识字段的唯一标识符不能为空,不能以数字开头,只能包含字母、数字或_
数据类型字段的数据类型从支持的字段类型中选择
是否必填该字段是否为必填项影响数据校验
是否唯一该字段的取值是否允许重复设置为唯一则不允许填重复值

主展示列配置

适用条件:数据类型为文本时可选择

功能说明:当其他数据模型配置关联关系指向本模型时,该字段会作为主展示列显示,方便用户查看

配置影响

  • 影响展示效果:在关联选择时显示该字段的值
  • 不影响存储:实际存储的仍然是关联记录的 ID

主展示列使用示例

以学生和课程模型为例:

学生模型配置

{
"name": "张三",
"course": "93e4b6a0640e9139042f27941b0ab7e6" // 存储课程ID
}

课程模型配置

  • 课程名称字段设置为主展示列

查询结果

{
"records": [{
"name": "张三",
"course": "93e4b6a0640e9139042f27941b0ab7e6",
"@course": {
"v1": {
"primaryColumn": "courseName", // 主展示列标识
"record": {
"courseName": "语文", // 主展示列的值
"_id": "93e4b6a0640e9139042f27941b0ab7e6"
}
}
}
}]
}

表单组件中的效果

  • 下拉选择显示:语文(主展示列值)
  • 实际提交数据:93e4b6a0640e9139042f27941b0ab7e6(ID值)

💡 字段使用最佳实践

字段类型选择建议

使用场景推荐字段类型原因
用户姓名单行文本简短文本,便于显示和搜索
商品描述富文本支持格式化,提升展示效果
技术文档Markdown轻量级标记,便于编辑
用户头像图片专门的图片处理和展示
商品价格数字支持数值计算和比较
订单状态枚举(单选)限制可选值,保证数据一致性
商品标签枚举(多选)支持多个标签,便于分类
订单编号自动编号自动生成,保证唯一性

性能优化建议

  1. 文本长度控制

    • 短文本使用单行文本(4000字节限制)
    • 长文本使用富文本(262144字节限制)
  2. 索引优化

    • 为常用查询字段建立索引
    • 唯一字段自动创建唯一索引
  3. 存储优化

    • 媒体文件使用云存储,字段存储 CloudID
    • 大对象数据考虑使用 JSON 类型

数据校验注意事项

  1. 格式化字段:邮箱、电话、网址会自动进行格式验证
  2. 枚举字段:只能填入预设的枚举值
  3. 关联字段:必须是有效的关联记录 ID
  4. 自动编号:在新增和更新方法中不可修改

通过合理选择和配置字段类型,您可以构建出既灵活又高效的数据模型,满足各种复杂的业务需求。