我正在将身份验证系统应用到现有的数据库系统中。目前,数据库有一个“Person”表,其中包含如下内容:名字,姓氏,出生日期,电子邮件(用户名)等。这是用户的主表。身份验证数据库字段
我需要添加以下字段进行身份验证:密码,IsLocked,LockDate,LastLoginDate。
你会建议把这些字段放在Person表中还是放在新的认证表中?我原来的计划是“人”只是简单地包含有关该人的数据,而不一定涉及认证。
另一种方法可能是将密码与电子邮件一起存储在Person中,但将验证数据放在单独的表中。这样,用户名和密码将在同一个地方,但元数据将在它自己的实体。
任何人有任何想法? 感谢您的帮助!
感谢您的回复。使用这种方法,您将在哪里存储电子邮件地址?它在整个应用程序中使用,但也可以用作用户名。你会将它从Person抽象出来并放到Authentication表中吗? – user543936
@ user543936 - 由于我上面提到的相同原因,我会将用户标识与电子邮件地址分开。在默认情况下,使用电子邮件地址作为用户ID可能是一个巧合或策略,但如果您引入组登录或电子邮件分发列表等,将来可能会随时更改。如果您有一条业务规则说明它们应该是同样,然后编写一点应用程序逻辑,在更新自动更新的应用程序逻辑之前进行检查(只要它们在编辑之前是相同的)。 –