在继续讲认证架构之前,必须先单独讲清楚一个基础概念:事务。
因为后面不管是:
这些操作几乎都不是“一条 SQL 就结束”,而是一组必须一起成功、一起失败的数据库动作。
如果没有事务这个概念,后面的认证系统设计就会很容易出现半成功半失败的脏状态。
所以这一篇先不讲登录流程,只把事务这件事讲透:它是什么、为什么需要它、ACID 是什么、提交和回滚在做什么、最常见的并发问题又是什么。