什么是硬删除和软删除
硬删除通过物理方式从数据库中永久移除数据。一旦记录被这样删除,除非有备份,否则无法恢复。软删除则不同,系统通过逻辑标记数据为已删除,而非实际移除。数据仍留在数据库中,但被视为无效。因此,通常可以恢复软删除的记录。每种方法在数据完整性、合规性和用户体验上各有优劣。设计一个可靠且用户友好的费用共享服务需要在数据保留和清理之间找到合适的平衡。在 Splync,这种平衡对信任和可用性都很重要。
Splync 1.13 仅支持硬删除
在 1.14 版本之前,Splync 中删除费用意味着立即从数据库中永久移除。这带来了一个微妙却严重的问题,尤其是因为 Splync 旨在帮助情侣和朋友轻松管理共享预算。想象一个有几十个费用的共享项目,如果一方或朋友意外或故意删除了一个条目,该数据将无影无踪地消失。这可能导致结算计算错误,更重要的是,会破坏成员之间的信任。在许多情况下,用户甚至不会注意到有东西丢失。版本 1.14 通过引入可视性和可逆性解决了这个问题。现在,当一个费用被删除时,用户会收到通知,并在需要时可以选择恢复它。
Splync 1.14 默认使用软删除
在 1.14 版本中,大多数删除操作都是软删除。当项目成员删除费用时,其他成员会收到通知。同时,该费用被移动到“垃圾箱”状态,而不是被实际抹去。如果在删除后 7 天内,任何项目成员都可以将该费用恢复到活动费用列表。这样的处理方式与许多现代系统相似,优先考虑安全性而非最终性。然而,并非所有情况都应一概而论。如果用户意外将私人费用添加到群组项目,或者条目完全无关?立即移除可能是避免混淆或隐私问题所必需的。在这些情况下,通知所有人并保留可恢复记录可能不合适。
例外情况:何时允许硬删除
为处理这些特殊情况,Splync 1.14 引入了受控的硬删除条件。如果删除费用的用户既是创建者又是最后的编辑者,并且删除发生在费用创建后 30 分钟内,则费用可以无通知地永久删除。当满足这些条件时,系统将该操作视为快速撤销,而非共享事件。所有其他删除情景默认采用软删除。通过这种方式,Splync 在灵活性、隐私和透明性之间找到了平衡。
如何查看已删除的费用
我们设计此功能尽可能直观。在 1.14 版本中,我们在现有的成员筛选按钮旁边新增了一个筛选按钮,允许用户在活动费用和已删除费用之间切换。因此,界面的筛选和排序区域略有更新。为了保持界面简洁易懂,筛选按钮现在使用符号。对于活动费用,用户可左滑删除它。点击删除按钮后,会出现一个警告,明确说明该操作会导致硬删除还是软删除,以便用户能自信地继续操作。对于已删除的费用,用户可左滑恢复它。
费用软删除后的下一步
既然我们已经改进了费用删除流程,下一步就是让项目删除更灵活。目前,用户只能在结算后删除项目。没有直接删除未结算项目的方法,这意味着用户在删除项目之前必须经历不必要的步骤。当项目因误操作、意外重复或不再需要而创建时,这可能会带来不便。改进费用删除是解决该问题的重要一步,因为删除项目比删除单个费用更复杂。它可能会影响所有项目成员的费用、余额和信任。因此,项目删除需要更为谨慎的设计。一个更好的解决方案正在路上。