【发布时间】:2014-07-14 17:59:42
【问题描述】:
我目前正在使用单列记录网站上的基本页面浏览量,每次页面加载时递增一。
这提供了访问量最大的页面的有限、非常一般的视图,而不考虑访问者重复加载的页面或搜索机器人访问的页面等。
不用担心这些,我想有效地跟踪网页访问,以允许查询更多详细信息,例如今天最流行的页面,或本周最流行的页面。
将每个视图存储为单独的记录肯定会很快降低效率,并且所需的数据不需要那种详细程度。
【问题讨论】:
-
什么是网络环境? ASP.Net/IIS?
-
如果我理解您的要求,我会说一个包含所有页面名称的基表,然后是一个包含以下列的子表。参考 Page、visited-datetime、useragent-nvarchar(100)、username-nvarchar(100) [不确定你是否有这个]、Referrer-nvarchar(200)。为每个访问添加一个新行。
-
@DMason 环境是 IIS 中的 ASP.NET 和 MSSQL。
-
我曾经编写过按会话跟踪页面浏览量/点击量的分析代码。它涉及使用母版页、会话开始/结束事件和会话变量。当会话结束事件触发时,相关数据(包括用户代理)将被保存到数据库中。你提到了机器人——我很难处理这个问题。我尝试使用 AJAX 无机器人控件等按用户代理字符串进行过滤。我最终放弃了,选择了 Google Analytics。
-
@Dbloch 这是我会采用的那种方法,但这不会很快变得低效吗?记录用户代理和推荐人将是一个奖励,但不是必需的,特别是由于需要存储。
标签: sql sql-server database database-design