一、删除对象的分类
- 库存记录:仓库-物料-批次/序列号-可用数量-冻结数量-在途数量。
- 库存快照:盘点、对账用的历史快照;不可直接删除,需归档。
- 库存事务:入库、出库、调拨、退货;删除需校验财务与订单闭环。
二、业务边界
- 无未结算事务:该物料在目标仓的出/入库单均为已结算或已作废。
- 无负库存:数量必须大于等于0;负库存是数据完整性红线。
- 非冻结批次:质量检验冻结、客户预留、项目锁定必须解冻或转移。
- 无财务凭证挂靠:若库存事务已出凭证,需撤销或冲销,再执行删除。
- 审计留痕:删除必须有审批与日志;否则难以追责与还原事实。
三、技术策略:软删除优先、硬删除谨慎
软删除通过状态位或归档表隐藏记录,支持回滚;硬删除直接移除行,适合测试数据或重复脏数据。在我实践中,软删除占80%以上场景,硬删除仅在测试或批量重复数据下使用,并需快照与审计双重留痕。
软删除优点
- 可回滚,风险低
- 审计溯源清晰
- 与财务核对更友好
硬删除适用
- 重复脏数据
- 测试环境清理
- 法务允许且已快照