0

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

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

4

1 回答 1

4

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

将首次创建密码的日期存储在主表中。更改密码时,将旧密码和原始日期复制到creation_dateold_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)

(顺便说一句,您应该测试此代码。)当有人更新密码时,您运行此查询。

于 2012-09-13T07:38:01.233 回答