【问题标题】:Structuring page counter MYSQLI database构建页面计数器 MYSQLI 数据库
【发布时间】:2015-09-26 18:04:24
【问题描述】:

我将为网站构建一个页面计数器,以确定不同页面的浏览量。基本上,我有一些用户想要跟踪大约 120 个特定页面的页面浏览量。

我无法确定执行此操作的最有效方法及其背后的逻辑。我正在尝试 3 个表,但这最终会出现许多不必要的行。我认为将数组存储在单个字段中然后更新数组,但我不确定这会增长,甚至是否可能。以下是我限制请求数量的方法。基本上每 100 个将计为 100 个。对于构建这个有什么想法吗?

$sample_rate = 100;
if(mt_rand(1,$sample_rate) == 1) {
//update set query
}

【问题讨论】:

  • 您需要在数据库中保留哪些详细信息?
  • 与页面浏览量关联的页面 ID。页面 id 将来自带有信息的标准表。
  • 只需要查看次数,需要用户ip,需要浏览器类型吗?有很多东西你可以留作统计,所以在得到这些细节之前不可能回答......
  • 我将使用现有的用户表,我的第一个想法是在更新命令中使用它。我只需要每个用户的页面 ID 和页面查看次数。这有意义吗?

标签: php database database-design mysqli


【解决方案1】:

根据我们在 cmets 中的对话,我推荐以下简单的设计:

TblPages
--------
Page_Id (pk)
Page_URL (unique)

TblViews
--------
View_Page_Id
View_User_Id
View_Count 
(pk is View_Page_Id + View_User_Id)

每当用户查看页面时,您都会执行一个存储过程,如果该用户和页面没有记录,则该存储过程将在 TblViews 表中插入一条记录,或者更新现有记录的 View_Count。

要获取页面的所有视图,您使用 SUM(View_Count) 并按 View_Page_Id 分组,以获取您按 View_User_Id 分组的用户的所有页面视图,等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多