我想拥有一个用户管理系统。我允许用户更改密码,但我应该有限制。例如,新密码不是最后使用的五个密码中的任何一个。
我应该如何维护最近五个密码的列表?
答案 0 :(得分:4)
我已在上面发表评论。但只是回答你的问题。您应该创建一个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)
(您应该测试此代码BTW。)当一个人更新密码时运行此查询。