用户无法使用他的最后五个密码

时间:2012-09-13 07:32:48

标签: mysql

我想拥有一个用户管理系统。我允许用户更改密码,但我应该有限制。例如,新密码不是最后使用的五个密码中的任何一个。

我应该如何维护最近五个密码的列表?

1 个答案:

答案 0 :(得分:4)

我已在上面发表评论。但只是回答你的问题。您应该创建一个old_passwords表,其中包含user_idold_passwordcreation_date

在主表中存储首次创建密码的日期。更改密码时,将旧密码和原始日期复制到creation_date表中的old_passwords。然后更新密码,并在主用户表中将日期设置为。

您还应该在user_id, creation_date上删除唯一索引。

要删除:

DELETE FROM old_password
WHERE user_id = ## AND creation_date NOT IN
  (SELECT creation_date
   FROM old_password
   WHERE user_id = ##
   ORDER BY creation_date DESC
   LIMIT 5)

(您应该测试此代码BTW。)当一个人更新密码时运行此查询。