0

ユーザー管理システムが欲しい。ユーザーにパスワードの変更を許可しますが、制限が必要です。たとえば、新しいパスワードは、最後に使用された5つのパスワードのいずれでもありません。

最後の5つのパスワードのリストをどのように維持する必要がありますか?

4

1 に答える 1

4

私はすでに上記のコメントを投稿しました。しかし、あなたの質問に答えるためだけに。、、を含むold_passwordsテーブルを作成する必要があります。user_idold_passwordcreation_date

パスワードが最初に作成された日付をメインテーブルに保存します。パスワードを変更するときは、古いパスワードとその元の日付を表にコピーcreation_dateしてold_passwordsください。次に、パスワードを更新し、メインユーザーテーブルで日付をnowに設定します。

また、おそらく一意のインデックスをにドロップする必要があります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 に答える