繁体   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