跳转到内容

多维表格

每张表由 字段(fields) + 记录(records) 构成:

  • 字段 是列的元数据:类型、名称、宽度、选项配置等
  • 记录 是行:{ id, cells: { fieldId: value } }

recordId 是 18 字符的全栈唯一 ID(无并行 ID 概念),跨前后端 / 跨存储引擎都是同一个。

星汉内置 20+ 字段类型,覆盖从基础数据到派生计算:

类型适合备注
文本单行/多行文字Markdown 子集
数字整数/小数格式、小数位、千分位
日期日期/日期时间时区跟用户配置
单选标签/状态选项带颜色
多选多项标签选项带颜色
勾选布尔
附件图片/文件本地存储
成员人员指派存储 actorId,显示名解析
关联跨表引用(瘦存储)单向/双向,存 recordId 数组
引用穿透关联显示目标表字段骑在关联上,派生只读
汇总跨表聚合SUM/AVERAGE/COUNT 等 7 种
公式基于本表列自动计算200+ 函数,服务端重算
编号自动编号公式驱动,前缀+日期+补零
Button触发自动化接自动化触发器
Markdown长文本富文本编辑

派生字段(公式/汇总/引用/编号)只读,值由服务端计算物化,不可手动编辑。

一张表可挂多个视图,互不影响数据:

  • 网格:经典 spreadsheet 视图
  • 岛屿网格(IslandGridView):分组后每组一张”卡片”,浮在浅色 tray 上
  • 甘特:按日期字段排时间轴
  • 看板:按单选字段分列
  • 日历:按日期字段铺日历

所有表格写入都走 Op System —— 不直接改 store,而是发一个 funCall(“在 fieldId 新增”、“改某 cell 值”等等),后端校验后回写并广播给协作者。

好处:

  • 一次操作 = 一个 Op + 一个反向 Op,撤销 / 重做天然支持
  • 多人协作时基于 baseRevision 做 CAS(compare-and-swap),冲突时拒绝并提示重做
  • 改动可序列化到日志(changeset_log 表),审计完整

详情见仓库内 OPERATIONS_EXTENSION_GUIDE.md