1

私の目的は、ユーザーとそのパスワードの情報を格納するテーブルを作成することです。また、失敗したログインの数を追跡したいと考えています。ただし、ここではテーブルについて簡単に説明します。

最初: ユーザーのテーブル

UserNo: ユーザーのID

名前: ユーザーの名前

Eメール

2 番目: ログインのテーブル

UserNo: 前回と同じ

パスワード

3 番目: 追跡の表

ユーザー番号

DateTime: ログイン日時

count: ユーザーが不正にログインするたびに増加するカウンター。

最後の 3 つのテーブルから、私がやったことはプロのやり方ではないと思います。より良いアイデアはありますか?特に追跡テーブルで。

ありがとう

4

4 に答える 4

3

なぜあなたはそれらを別々に保つのですか?ID、ユーザー名、パスワード ハッシュ、最終ログイン日、失敗回数カウンターを含むユーザー テーブルを用意しないのはなぜですか?

それ以外の場合は、ログイン試行を独自のテーブルに分離し、成功または失敗などのステータスを記録して、最後に成功した試行以降の失敗した試行の数を手続き的に計算できます。また、失敗したかどうかにかかわらず、ログインの完全な監査も提供します。

于 2013-03-19T13:41:39.767 に答える
3

ユーザーごとに 1 つのパスワードしかないため、最初の 2 つのテーブルを一緒にマージすることをお勧めします。そのため、ユーザーのすべてのデータを 1 つのテーブルの 1 つの行に配置することは理にかなっています。

3 番目のテーブルには、各ログインのタイムスタンプが記録されます。追加の列を追加した場合は、失敗した各ログインのタイムスタンプも記録できます。クエリを実行すると、ユーザーごとの失敗したログインの合計数が得られます。

または、最後のログイン以降の失敗したログインの数をカウントしている場合は、カウンターを最初のテーブルにもう一度置くことができます。

于 2013-03-19T13:42:06.640 に答える
2

いくつかのポイント:

  1. パスワードの履歴を保持する場合を除き、2 番目のテーブルを使用する理由はありません (その場合、パスワードが作成された日付を追跡するために追加のフィールドが必要です)。

  2. 3 番目の表では、不正なログインの数にカウンターを使用しないでください。代わりに、ログイン試行 (成功または失敗) ごとにレコードを書き込み、必要なときにクエリを使用してカウントを取得します。

于 2013-03-19T13:41:19.900 に答える
0

すべてのフィールドを 1 つのテーブルに入れることができます

UserID, UserName, UserEmail, Password, Login_Timestamp, Counter

次に、すべての値を単一のテーブルに保存できます

于 2013-03-19T13:41:27.343 に答える