“暂存”校验逻辑探讨

1、背景

在业务中可能会遇到这种场景,前端页面元素多且复杂,一次性填完提交耗时很长,中间中断面临着丢失数据的风险。针对这个问题,"暂存"应运而生。

那"暂存"的时候,是否需要对数据校验,如何进行校验,就是本文探讨的内容。

2、前后端职责简介

探讨之前,先简单聊聊前后端的职责。

2.1 前端

负责数据的输入,并对输入的内容进行校验,保证数据正确性、完整性。

常见的校验逻辑有以下几种:

  • 必填项校验
  • 数据类型校验:金额、数字、日期
  • 数据格式校验:金额格式、日期格式、邮件格式、身份证格式
  • 长度校验

2.2 后端

负责数据的保存,保证数据持久化。

数据库保存数据,存在的限制:

  • 数据类型:数字、日期、字符串
  • 数据长度

3、校验逻辑探讨

3.1 业务合理性

站在业务角度看,暂存是要把已填的数据先存起来,其实没有任何校验逻辑也没问题。

没有任何校验,就意味着数据可以随便输入,也就意味着会有错误数据保存:比如金额输入的是汉字等。

所以暂存是否允许输入错误数据呢?这是一个核心问题。

|----------------------|------------------|--------------|
| 方案 | 优点 | 缺点 |
| 不做任何校验 | 随便存 | 有错误数据 |
| 不做必填项校验,其它校验需要做:填就填对 | 1、数据正确 2、填多少保存多少 | 要填就得填正确,略有限制 |

3.2 技术实现方案

|----------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| 技术方案 | 优点 | 缺点 |
| 不做任何校验 | 1、暂存时直接去掉校验逻辑,前端简答 | 1、后端数据库有类型限制,想达到这个效果有2种方式: * 所有字段都是字符串类型: * 所有表结构都需要调整 * 日期、数字等计算逻辑需要特殊处理 * sql 操作都需要转换类型 * 所有模块暂存的数据单独找一个表保存,json方式,给什么存什么 * 增加一个暂存表 * 暂存回显需要读这个表 |
| 不做必填项校验,其它校验需要做:填就填对 | 1、后端数据可以正常保存在数据库 | 1、前端暂存时需要排除必填项校验 |

3.3 总结

系统的核心是流程及数据,站在这个角度看,数据是需要保证正确性的。

综合考虑业务需求、实现难度,我认为暂存应该只去掉必填校验,其它校验保留。

相关推荐
pcm12356719 小时前
设计C/S架构的IM通信软件(4)
java·c语言·架构
齐鲁大虾21 小时前
Linux下用什么编程语言方便开发B/S架构程序
linux·运维·架构
Volunteer Technology21 小时前
MinIo介绍和使用
架构
h7ml1 天前
淘宝返利软件的跨端同步架构:Java RESTful API+GraphQL满足Web/APP/小程序的多端数据需求
java·架构·restful
茂桑1 天前
DDD领域驱动设计-基础设施层
设计模式·架构
大转转FE1 天前
转转前端周刊第185期: 深度解析Moltbot 底层架构
架构
潆润千川科技1 天前
技术视角下的中老年垂直社交应用:架构考量与体验平衡
架构·聊天小程序
yuezhilangniao1 天前
从对话大脑到万能助手:企业级AI助理五层AI架构实战指南-AI开发架构AI体系理性分层篇
人工智能·架构
Coder_Boy_1 天前
基于SpringAI的在线考试系统-企业级教育考试系统核心架构(完善版)
开发语言·人工智能·spring boot·python·架构·领域驱动
消失的旧时光-19431 天前
第十三课实战版:权限系统实战:RBAC + Spring Security 从 0 到可用(含核心代码)
java·架构·rbac