前言
转载自:Best Practices for Designing a User Authentication Module
摘录
设计身份验证模块的最佳实践将用户帐户和用户身份的概念分开。这种分离允许用户将多个身份验证因素链接到单个用户帐户并随意更改这些因素。
笔记
一、用户认证模块的表设计应该尽可能的将用户账户信息和用户登录的信息区分开来,将用户个人属性和用户认证用到的属性进一步原子化。
二、用户应该在系统中存在内部唯一的标识值(与用户登录信息无关),通过内部标识值去进行登录验证操作的关联,确保数据的一致性。
三、用户权限设计时,尽可能的将授权信息和用户信息表解耦,使用内部标识符进行关联,数据的准确性通过系统代码去控制。
四、应该尽量将各个模块根据实际需求、业务抽象成具体的表,将其按照功能模块建立模型关系或通过程序代码控制;不应该将大量数据属性聚合在一张表中,过于耦合的数据库结构,会降低系统的健壮性,不利于未来的拓展开发。