这个想法是显示人们访问某个产品页面的次数。
到目前为止,我已经提出了两种选择。
在products表(Mysql)中添加一个名为“views”的新列。这似乎是最简单,最快捷的设置方式。
创建一个名为“product_views”的新表。有3列。 id,产品ID,视图。从那里你可以使用JOINS更新并调用查看次数。
那么我想知道哪个选项更好?
答案 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)
);