移动端 API 的 JSON 与 Protobuf:大小、兼容性与调试
解释了移动端 API 中 JSON 与 Protobuf 在负载大小、兼容性与调试方面的权衡,并给出选择文本或二进制格式的实用规则。
了解用于报价、订单、报销和清单的父子数据模型,以及可编辑行项目表单的简单模式。

因为把共享信息和重复的行信息放在同一个记录里会混淆。父子模型能让表头保持清晰,每一行可以单独添加、编辑、校验或删除,而不会破坏整个表单。
如果某个字段描述的是整个文件,例如申请人、客户、日期、部门或总体状态,就放在父记录。会在每行变化的值,例如数量、金额、类别、备注或到期日,应放在子记录。
当一个表单有一个表头和许多可编辑行时就该使用父子结构。报价、订单、报销和清单是常见例子,因为每一行都需要自己的字段和操作。
需要。给每个子行一个唯一 ID,而不要只依赖行的位置。这样更容易编辑、跟踪更改、恢复已删除项并安全地同步更新。
通常不应该。更安全的默认做法是从子记录计算总计,并将父记录的总计设为只读。这能避免不一致并让审批更值得信任。
在出错的确切行和字段上显示错误。如果某一项有问题,用户应该可以就地修复该行而不丢失其余表单内容。
不一定。如果审核是逐行进行的,那么每个子行应有自己的状态,而父记录保留总体状态。报销就是一个示例:有些费用被批准,有些被拒绝。
审核开始前彻底删除可能没问题。但在审核开始后,归档通常比完全删除更安全,这样历史总计和审批决策仍然有据可查。
尽量在同一屏显示父记录细节与可编辑行。添加、复制和删除按钮要显眼,支持保存草稿或部分保存,能让长表单更不让人沮丧。
在无代码工具中,先为父与子建立独立数据模型,然后添加连接父子行的规则、总计与状态逻辑,最后再打磨布局。AppMaster 很适合这类构建,因为父子结构可以自然映射到独立的数据模型、相关表单和业务逻辑上,并能在后续把同一模型扩展为后端、Web 与原生移动应用。