页面视图在Mysql中计数。更好的方法吗?

时间:2014-05-08 20:26:30

标签: php mysql count views

这个想法是显示人们访问某个产品页面的次数。

到目前为止,我已经提出了两种选择。

  1. 在products表(Mysql)中添加一个名为“views”的新列。这似乎是最简单,最快捷的设置方式。

  2. 创建一个名为“product_views”的新表。有3列。 id,产品ID,视图。从那里你可以使用JOINS更新并调用查看次数。

  3. 那么我想知道哪个选项更好?

2 个答案:

答案 0 :(得分:4)

取决于你想要的东西。我通常在一个表上记录页面视图,例如:

ID (int), PRODUCT_ID (int), IP_ADDRESS (varchar(15)), VIEW_TIME (datetime)

这使我能够通过IP地址统计完整视图或独特视图,并在桌面上执行COUNT(*),并且还可以记录访问该页面的人员。显然这会增加数据库所需的空间需求。

如果您只是创建一个产品视图列,那么创建一个存储过程,该过程将产品ID作为参数,每次将product_view列的值增加1运行

答案 1 :(得分:0)

ip地址应该是unsigned int(10),你将字符串转换为INET_ATON的数字。类似的逆转。节省空间并使其更快地排序和过滤IP地址。我有一张看起来像这样的表:

CREATE TABLE statistics 
(
   id INT UNSIGNED NOT NULL AUTO_INCREMENT,
   productid INT(6) NOT NULL DEFAULT 0,
   ip INT(10) UNSIGNED NOT NULL DEFAULT 0,
   event char(1) NOT NULL DEFAULT 'V',
   intervall TIME NOT NULL DEFAULT 0,
   createddate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY (id)
);