1.背景及说明
针对于重要的数据填报表,特别是维度表;我们想记录下用户的操作情况,包括数据删除这个动作。此时,就需要用到数据软删除。
无论是被删除数据单独入表,还是加个字段进行标志位区分等等,软删除实现的原理是一致的;
而通过数据软删除的数据保留,后续用户想要实现数据的一键恢复或者操作撤回【ctrl+z】成为可能
2.实现
此处我们主要依靠帆软本身的js提交入库功能【JS自定义按钮提交当前行】,主要包括①删除提交入库②页面提交过滤③查询数据库过滤三个动作实现
以加个字段进行标志位区分进行软删除为例,
①删除提交入库
通过删除按钮的提交入库进行触发,要点如下:
a.提交类型为更新提交→主要用于修改对应数据库被删除数据的标志状态;
b.设置主键和提交条件,按照实际业务设置,确保删除数据的唯一性和符合要求性
②页面提交过滤→因为帆软的删除只是页面删除,在原提交页面数据依然存在,故需要对单独软删除的数据进行过滤
如下:写条件对软删除的数据过滤不提交即可
③前端查询+个过滤,is_deleted为否即可
如果是删除数据单独入表的方式,原理类似,配置略有不同。
3.备注
数据软删除容易导致数据倍增,无效数据大量冗余,故需要结合数据校验、控件填报规则、js回调函数、提交条件等按照实际提交对数据进行校验和过滤,确保最终需求为所需需求。
最后,文档不完善或者有遗漏的地方欢迎各位大佬补充~~ |