1

我的目标是创建一个存储用户信息及其密码的表。另外,我想跟踪登录失败的次数。但是,以下是有关这些表的简要说明:

第一:用户表

UserNo:用户的ID

名称:用户名

电子邮件

二:登录表

UserNo: 和上一个一样

密码

三:跟踪表

用户编号

DateTime:登录的日期和时间

count:每次用户错误登录时都会增加的计数器。

从最后三张表来看,我不认为我所做的是一种专业的方式。有没有更好的想法?尤其是跟踪表。

谢谢

4

4 回答 4

3

你为什么要把它们分开?为什么不只拥有一个包含 id、用户名、密码哈希、上次登录日期和失败尝试计数器的 users 表?

否则,您可以将登录尝试分开到它自己的表中并记录状态,例如成功或失败,这样您就可以按程序计算自上次成功尝试以来失败的尝试次数,并且它还提供对登录的完整审核,无论是否失败。

于 2013-03-19T13:41:39.767 回答
3

您可能希望将前两个表合并在一起,因为每个用户只有一个密码,因此将用户的所有数据放在一个表的一行中是有意义的。

第三个表记录每次登录的时间戳,如果您添加额外的列,也可以记录每次失败登录的时间戳,然后查询将为您提供每个用户的失败登录总数。

或者,如果您正在计算自上次登录以来失败的登录次数,那么您可以再次将计数器放在第一个表中。

于 2013-03-19T13:42:06.640 回答
2

几点:

  1. 除非您要保留密码历史记录,否则没有理由使用第二张表(在这种情况下,您需要一个额外的字段来跟踪密码的创建日期)

  2. 在第三个表中,不要对错误登录次数使用计数器;相反,为每次登录尝试(成功或其他)写入记录,并在需要时使用查询来检索计数。

于 2013-03-19T13:41:19.900 回答
0

您可以将所有字段放在一个表中

UserID, UserName, UserEmail, Password, Login_Timestamp, Counter

然后您可以将所有值保存在一个表中

于 2013-03-19T13:41:27.343 回答