php - 设置一个 MySQL 表来跟踪用户链接点击

标签 php mysql sql database

这是我几天前发布的问题的后续。

基本上,我有一个包含六个链接的网站。为了访问该站点,用户必须使用 LDAP 身份验证登录。当他们这样做时,我会获取他们的一些帐户凭据(用户名、名字、姓氏),并将其存储在 PHP $_SESSION 变量中。

行得通;用户可以登录, session 数据存储成功。

现在,我想设置一种方法来跟踪哪些用户点击了哪些链接。基本上只是在数据库中存储他们单击链接时的时间戳。我希望能够看到谁点击了(或未点击)每个链接,以及点击时间。

我可以在单个表中执行此操作吗?这是个坏主意吗?我正在考虑像这样设置表格:

TABLE(每个项目符号代表一列)

  • 自动递增ID
  • 用户账户名:abc1234
  • 用户名:John
  • 链接 1:上次访问时间为 2012 年 5 月 2 日下午 4:15
  • 链接 2:NULL
  • 链接 3:NULL
  • 链接 4:上次访问时间:2012 年 5 月 1 日下午 2:20
  • 链接 5:NULL
  • 链接 6:NULL

基本上上面会说“约翰”只点击了第一个和第四个链接。其余的都是空的,因为他从未访问过它们。如果他再次单击 #1,它将被最近的日期/时间覆盖。

我可以在单个表中执行此操作吗?还是会造成并发症?我觉得最困难的事情是在添加信息之前检查用户是否已经在数据库中(即如果约翰第二次登录,则不会为他创建一个全新的行)

感谢您的帮助!

最佳答案

那可不是个好主意。如果您想拥有第七个链接怎么办?如果用户格式发生变化怎么办?

此解决方案需要 3 个表:

  • 用户 - 包含用户数据(和用户 ID)。
  • 链接 - 包含链接数据(和链接 ID)。
  • 点击次数 - 用户和链接之间的多对多关系。

第三个表看起来像这样:

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

关于php - 设置一个 MySQL 表来跟踪用户链接点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438842/

相关文章:

php - 将 MYSQL* 查询转换为带有占位符的 PDO 就绪语句

sql - 如何从Oracle中的正则表达式中提取组?

PHP mysqli 命令不同步;你现在不能运行这个命令

php - Laravel 5.6 - Eloquent 多对多错误 1066

php - 发送 header 后重定向用户

从任何地方远程访问 MySQL

php - 这里使用的 preg_match 概念是什么?

mysql - 是否可以使用cmd从另一台计算机访问wamp mysql数据库?

mysql - 在 SQL 中连接团队、城市和日程表

sql - SQL Server 中的日期转换引发错误