2012-05-03 11 views
1

これは数日前に投稿した質問のフォローアップです。ユーザリンクのクリックを追跡するためのMySQLテーブルの設定

基本的に6つのリンクがあるサイトがあります。サイトにアクセスするには、LDAP認証を使用してログインする必要があります。彼らがこれを行うとき、私は自分のアカウント証明書(username、firstname、lastname)を取得し、それをPHP $ _SESSION変数に格納します。

これは機能します。ユーザーはログインでき、セッションデータは正常に格納されています。

ここで、どのユーザーがどのリンクをクリックしたかをトラッキングする方法を設定します。基本的には、リンクをクリックしたときのデータベースにタイムスタンプを保存するだけです。私は、誰が各リンクをクリックしたのか、またクリックしていないのかを知ることができるようにしたい。

これを単一のテーブルで行うことはできますか?それは悪い考えですか?

TABLE(列を示す各弾丸)

  • 自動インクリメントID
  • ユーザーアカウント名::私はこのようなテーブルを設定考えていたジョン:
  • ユーザーアカウントのファーストネームABC1234
  • リンク1:最終4:15 PM
  • リンク2で2012年5月2日アクセス:NULL
  • リンク3:NULL
  • リンク4:最終14:20
  • リンク5で2012年5月1日にアクセス:NULL
  • リンク6:基本的にNULL

上記 "ジョンは" 最初にクリックしたことを言うだろう第4リンク。彼等は決してそれらにアクセスしていないので、残りはヌルです。彼が#1を再びクリックすると、より新しい日付/時刻で上書きされます。

これを単一のテーブルで実行できますか?それが合併症を引き起こすか?私は情報を追加する前にユーザーがすでにデータベースに入っているかどうかを確認することが最も難しいと感じています(つまり、Johnが2回目にログインすると、新しい行が作成されません)

ありがとうございました!

+0

あなたのサイトで絶対に決して6つ以上のリンクが存在しないことは間違いありませんか?そうでない場合は、あなたは答えの一部を持っています... –

+0

@RaphaëlAlthausこんにちは、入力のおかげで!あなたは正しい、私は事実についてそれを知らない。私は大学のページのためにこれをやっています、そして、彼らはそれがちょうど6リンクになると言っていますが、将来私は確かに変わるかもしれません。 – Prefix

答えて

2

これは悪い考えです。もし7番目のリンクを持っていたら?ユーザーフォーマットが変更される場合はどうなりますか? - ユーザデータ(およびユーザーID)が含まれてい

  • ユーザー:

    このソリューションは、3つのテーブルが必要です。

  • リンク - リンクデータ(およびリンクID)を含みます。
  • クリック数 - ユーザーとリンクの多対多の関係。

3番目のテーブルには次のようになりますこと:

user_id | link_id | timestamp 
----------------------------- 
1  | 2  | ... 
2  | 2  | ... 
1  | 3  | ... 
............ 
+0

こんにちは真実、返信いただきありがとうございます! :-) "Users"テーブルでは、自動増分IDが1つの列にあり、2列目にユーザー名があります。 「リンク」テーブルには、第1列に自動インクリメントIDがあり、第2列にリンク名(ビデオ1、ビデオ2など)があります。私はそれが "クリック"テーブルを組み立てることになると混乱しています。他の2つのテーブルのデータをどのように引き込むのですか?私はこれが非常に基本的だが、MySQLは私の強みではないことを知っています。 :-) 本当にありがとう! – Prefix

+0

ユーザーがログインすると、ユーザーIDがデータベースからフェッチされ、セッションに格納されます。ユーザーがリンクをクリックすると、実際にはGETフォーム(www.example.com/index.php?linkid=1)が送信され、リンクIDが取得されます。スタンプは現在の時刻です。 :) –

+0

@TomC:次に、第1と第2のテーブルから第3のテーブルへのクエリの結果を人間が読めるようにすることができます。 –

1

だけ

increment_ID 
Account_ID 
Link_URL 
Timestamp 

を持っていない理由それからちょうど各クリックのための新しいレコードを挿入します。 URLパス全体を保存するので、リンクを管理する必要はありません

+0

こんにちはボーンズ!入力いただきありがとうございます。私はあなたの説明で少し混乱しています。あなたの例は単一のテーブルにありますか? – Prefix

+0

はい単一テーブル4列 – bones

+0

@bone:リンクURLが変更されると、レポートは廃止されます。 –

関連する問題