Orisumi

History

更新形成新版本,版本全部保留,删除以实体为单位

数据只有两种变化方式:更新和删除。更新形成新版本,旧版本保留;只有删除会移除内容。

操作用途已有的版本
更新补全或纠正同一个实体全部保留
删除移除用户选中的实体全部移除,不可恢复

更新

HISTORY-1 更新即新版本

定义

更新一个实体,就是形成它的新版本。

HISTORY-2 补全与纠正

执行方:后端

新版本可以补全,也可以纠正,例如延长 endAt、填写未知的值、修正错误的边界或时区。后端只检查每个版本自身是否合法。

保留

HISTORY-3 保留全部版本

执行方:后端

未删除的实体保留全部版本。读取方可以读任何一个版本,也可以沿 previousVersionId 看到实体的全部变化。

HISTORY-4 原始材料

执行方:写入方

保存哪些原始材料由业务规则决定。原始材料是来源提供、尚未按业务规则解释的数据。它所需的字段在 EntitySchema 中声明,可以放在观测内容的字段里,也可以保存为独立的实体,由观测内容引用。

删除

HISTORY-5 用户可删除

执行方:后端

用户可以删除任何实体。

HISTORY-6 按实体删除

执行方:后端

删除以实体为单位,移除选中实体的全部版本。引用了这些版本的其他实体保持原样。需要成组删除时,逐个列出要删的实体。

HISTORY-7 不可复活

执行方:后端

被删除的实体不能复活:它不再接受新版本,重放它的旧版本也无法恢复它。

HISTORY-8 引用保留,内容不可读

执行方:后端、读取方

引用了被删除版本的版本保留这些引用。被删除的内容不留副本,所以读取或追溯到这里时,读取方把目标列为不可读取,并说明结果不完整。

HISTORY-9 有数据的 EntitySchema 不能删

执行方:后端

还有业务版本引用某个 EntitySchema 的任何一个 Schema 版本时,不得删除这个 EntitySchema。要删除一种类型的全部数据,先删除数据,再删除 EntitySchema。

贡献者

页面历史