簡體   English   中英

設置MySQL表以跟蹤用戶鏈接點擊

[英]Setting up a MySQL table to track user link clicks

這是我幾天前發布的問題的后續內容。

基本上,我有一個有六個鏈接的網站。 要訪問該站點,用戶必須使用LDAP身份驗證登錄。 當他們這樣做時,我會獲取他們的一些帳戶憑據(用戶名,名字,姓氏),並將其存儲在PHP $ _SESSION變量中。

這樣可行; 用戶可以登錄,並且會話數據已成功存儲。

現在,我想設置一種方法來跟蹤哪些用戶點擊了哪些鏈接。 基本上只是在他們點擊鏈接時在數據庫中存儲時間戳。 我希望能夠看到誰(或沒有)點擊每個鏈接,以及何時。

我可以在一張桌子上做這件事/這是個壞主意嗎? 我在想這樣設置表格:

表(每個子彈指示一列)

  • 自動遞增ID
  • 用戶帳戶名稱:abc1234
  • 用戶帳戶名:John
  • 鏈接1:最后訪問時間是2012年5月2日下午4:15
  • 鏈接2:NULL
  • 鏈接3:NULL
  • 鏈接4:最后訪問時間是2012年5月1日下午2:20
  • 鏈接5:NULL
  • 鏈接6:NULL

基本上上面會說“John”只點擊了第一個和第四個鏈接。 其余的都是null因為他從未訪問過它們。 如果他再次點擊#1,它將覆蓋更近的日期/時間。

我可以在一張桌子里這樣做嗎? 還是會產生並發症? 我覺得我最困難的事情就是在添加信息之前檢查用戶是否已經在數據庫中(即如果John第二次登錄,則不會為他創建一個全新的行) )

謝謝你的幫助!

那將是個壞主意。 如果你想要第七個鏈接怎么辦? 如果用戶格式會改變怎么辦?

此解決方案需要3個表:

  • 用戶 - 包含用戶數據(和用戶ID)。
  • 鏈接 - 包含鏈接數據(和鏈接ID)。
  • 點擊次數 - 用戶和鏈接之間的多對多關系。

第三個表看起來像這樣:

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

為什么不只是

increment_ID
Account_ID
Link_URL
Timestamp

然后只需為每次點擊插入一條新記錄。 您也不需要管理鏈接,因為您將存儲整個URL路徑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM