2011-08-07 79 views
1

我需要建议我应该为记录访问者统计信息的脚本创建哪些数据库字段。网站统计表数据库字段

到目前为止,我有

ID bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
os varchar(10) default NULL, 
time datetime NOT NULL default '0000-00-00 00:00:00', 
ip varchar(40) default NULL, 
host varchar(150) default NULL, 
browser varchar(50) default NULL, 
os varchar(20) default NULL, 
referrer text, 
search text, 
language varchar(5) default NULL, 
screenres varchar(15) default NULL, 
PRIMARY KEY (ID), 
KEY time (time) 

基本上,我想记录尽可能多的数据可能每次访问,但同时保持桌面快速访问,因为这将有许多记录...

您是否认为我应该将原始格式(值为$_SERVER['HTTP_USER_AGENT'])的os +浏览器存储到单个字段中,然后确定输出上的os和浏览器?

+1

好了,到了最后,这取决于你想要的数据和什么做什么你想知道用户...所以这是一个非常抽象的行为。 – Quasdunk

回答

0

在这里任何人都可以给你一个更清晰的答案之前,还有很多需要回答的问题。

  1. 什么是这一切将被用于?

  2. 这是要记录访问过的每个页面还是访问者的初始“登录页面”?

而且,是的,你可以只存储在输出(如果需要的时间)在一个领域的HTTP_USER_AGENT和过程,你要记录用户多长时间停留在页面上,看它是否是一个错误或者他们正在阅读。从那里你可以看看可能看到他们是否至少点击了你网站上的其他链接。

至于存储速度,很大程度上取决于您在一段时间内有多少访问者,一旦您拥有这样一个数字,您就可以模拟许多访问您网站的人,同时看到只要你需要一个瓶颈。

0

在我看来,“保持(...)快速访问”和单词“表”不适合一个句子。简单地说,因为与任何专用日志记录方法相关的日志访问数据库总是很慢。

最好的方法 - 使用脚本引擎的本机日志记录,例如syslog。

我想你使用的是PHP,所以只需使用fopen()flock()fwrite()调用即可轻松实现最佳结果。然后,您可以简单地记录有关访问者的所有信息:Cookie,获取,发布,会话,整个服务器数组(仅包含像referrer或ip这样的字段)。记录脚本执行时间和脚本错误(如果有的话)也很有用。

至于我,我用PHP Log2Files Advanced Logger,它记录为文本或二进制 - 这真的是最快的解决方法:)