H8.01.2CRUD record state distinction设计研究

编辑与查看的状态需明确区分

别名: 记录的编辑与只读 · CRUD 模式混淆 · view versus edit

概念解释

在增删改查里,读取更新常常共用同一条记录的版面:字段还在,标题还在,人却可能处于只读或可写。状态需明确区分指:当前是在看这条记录,还是在改这条记录,必须能从界面当场判出来,而不能靠「点进去试试能不能改」。它处理的是 CRUD 里读与写两种操作叠在同一表面时的状态问题。查看态和编辑态整页换一套视觉语言、入口要不要按权限隐藏、意外退出保不保草稿,都不在这里展开。

机制

同一套字段布局被两种操作复用时,人默认「我看见的就能改」——这是直接操作的预期,不是疏忽。若只读详情用了输入框的外观、或可写页看起来像文章,操作与后果错位:在只读页里打字没有落盘,人以为保存失败;在可写页里随手改一个标签,却当成预览。模式指示若只在角落,视线停在正文时等于没有指示。CRUD 特有的失败是选错了操作种类:本想读取却提交了一次更新,或本想更新却在只读壳里空忙。通用的「模式要看得见」是另一层机制;这里多出来的是——记录表面同时承担读和写,状态一旦含糊,四类操作里的 R 和 U 会互相污染。

怎么研究

给同一条记录两种外壳(只读详情、就地可写),任务交替为「核对某个值」和「改某个值」,不先告诉被试现在是哪种外壳。

自变量:只读与可写是否共用输入外观、状态标签是否落在正在操作的字段旁、从列表进入时默认落在哪种状态。 因变量:在只读壳里尝试输入的次数、在可写壳里把改动当成未提交预览的次数、完成后问「刚才能不能改」。

实验室里任务指令会泄露状态(「请修改」),要改成目标导向:「确认截止日期」既可以看也可以改。真实产品还要记:有多少次打开详情后立刻再点「编辑」,那是状态默认为只读且入口可发现;若打开后乱点字段,是默认可写却没声明。

边界

创建流程本身就是写,没有「查看这条尚未存在的记录」的对应态,不必强造只读壳。表格单元格就地编辑时,状态是单元格级而不是整页级,区分靠焦点与提交手势,而不是整页横幅。纯媒体阅读器没有更新操作,只读是唯一态。权限不足时人本来就不能写,若界面仍像编辑器,失败会从「状态不清」变成「权限不清」——那是另一类误判。

怎么落地

  • 只读详情用静态文本,不要用禁用输入框冒充;进入更新后字段才变成可聚焦控件。
  • 从列表点开记录时,默认落在读取;需要更新再走明确的「编辑」动作。默认就地可写的对象(草稿、个人笔记)要在标题区持续标明「正在编辑」,而不是只在进入时闪一下。
  • 保存、发布只出现在可写状态;只读状态提供的是关闭、分享、复制,避免两种状态共用同一主按钮文案。
  • 验证:把同一记录做成只读与可写两版,请人完成「看截止日期」和「改截止日期」各一次,中途不问现在是哪种。若只读版出现输入企图,或可写版结束后人说「我只是看看」,状态就没有分开。

延伸

  • 同组H8.01.1 四类操作的入口位置需一致 · H8.01.3 未保存的修改需在离开前提示
  • 相邻H8.09 编辑态与查看态 · A10.02 模式错误 · H8.07 协作编辑冲突
  • 站内检索edit versus view · record state · mode error

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H8.01.2