2010-12-26 19 views
0

ソーシャルサイトのアクティビティ追跡システムの作成。ログイン時のログオフからのすべてのユーザー活動が追跡されます。つまり、最初のユースケースはユーザーのログインです。すべてのアクティビティは同じフォーマットになりますので、一度アクティビティを追跡する方法を理解すると、すべてのアクティビティに対してchemaを作成できます。私が持っているログイン追跡のアクティビティの追跡の使用

2種類の溶液:
活動1:現在、ログインのための私のような手順を持っているユーザーは、
活動2にログインしようとするA:ユーザーが正常に
活動2 Bでログインした:ユーザーがログインに失敗しました。
アクティビティ2 B A:無効なパスワードのため、ユーザーがログインできませんでした。
アクティビティ2 B B:アカウントがロックされているため、ユーザーはログインできませんでした。

OR

Activty 1:ユーザーログイン - 結果=合格または不合格とし、理由の失敗理由は= flag_id場合。

したがって、私はスキーマを作成する必要があります。今のところ私はこのようにそれを持っている:
は(合格/
OBJECT_ID(FK)
SESSION_ID(FK)
USER_ID(FK)
flag_id(FK)
created_dt
friend_id(FK)
結果をACTIVITY_ID失敗)

しかし、この作業は進行中です。

+0

どのような言語ですか? – RobertPitt

+0

PHPでも問題はありません。これはソーシャルサイトであり、ユーザアクティビティのトラッキングを実装する必要があるため、アクティビティを記録するスキーマを作成する方法を決定します。 – Mdillion

答えて

1

この要件は、システムへのログイン試行の監査が必要であり、ログインに失敗した理由を含める必要があることを簡単に述べているようです。テーブルは次のようになります。

LoginAudit 
    ID (some kind of primary key, whatever your standards are) 
    UserID (FK to whatever table holds users, or whatever uniquely identifies a user) 
    LoginTime (time stamp of attempt) 
    IsSuccessful (bit, true or false, was the login successful?) 
    Status (FK to a table of known statuses, or just the status itself for a flat de-normalized structure, indicating "success" or a reason for failure, such as "invalid password" or "account locked") 
    (more relevant data, such as user's IP or location, etc.)... 

これは書き込みの重いテーブルであり、データが変更されることはありません。更新などを防ぐためにいくつかのトリガーを置いておきたい場合があります。

サイドノートでは、これは言うまでもないことですが、私はそれをどうにかして言わなければならないと感じています。あなたがここにそれを格納しているときにログイン失敗の理由をユーザに知らせる。すべてのユーザーは、ログインが失敗したことを確認する必要があります。ログインに失敗した理由により、攻撃者はシステムを操作するために使用できる追加情報を得ることができます。

+0

これは、ユーザーのアクティビティ追跡モジュールの1つの部分である。それはソーシャルサイトであり、ログオフするまでのログイン時点からすべてのユーザーアクティビティを追跡する必要がありますが、アクティビティ設計に基づいて、スキーマ(すべてのシステムアクティビティを保持するテーブル列)を作成する必要があります – Mdillion

+0

考えられる活動ごとに1つの表がありますか? – Mdillion

+0

@Mdillion:それは疑問ではないので、私はそれを示唆していません。元の質問は、ユーザーのログイン試行を追跡し、失敗したログインの理由を含めることでした。これ以上のことがある場合は、それを質問に追加し、可能な限り明示的にすることができます。 – David

関連する問題