我想要一个用户管理系统。我允许用户更改他们的密码,但我应该有限制。例如,新密码不是最近使用的五个密码中的任何一个。
我应该如何维护最近五个密码的列表?
我已经在上面发表了评论。但只是为了回答你的问题。您应该创建一个包含,的old_passwords
表。user_id
old_password
creation_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)
(顺便说一句,您应该测试此代码。)当有人更新密码时,您运行此查询。