我目前正在为能够托管图片,视频和博客帖子的CMS设置视图计数。我需要跟踪正常的页面浏览(使用检查系统以确保用户不能简单地一遍又一遍地刷新页面)和独特的页面视图。
到目前为止,我计划使用“记住我”功能中的cookie来帮助跟踪实际用户的查看情况,并为每种形式的内容配备一个系统,以确保用户注册与否不会简单地点击刷新再次。审核页面的用户的视图应该被计算在内,但可以与唯一的页面视图区分开来。
目前我有:
CREATE TABLE tbl_content (
con_id INT NOT NULL AUTO_INCREMENT,
u_id INT NOT NULL,
title VARCHAR(100) NOT NULL,
description TEXT (1000) NOT NULL,
added_stamp TIMESTAMP NOT NULL,
mod_stamp TIMESTAMP NOT NULL,
status smallint(2)
PRIMARY KEY (con_id),
FOREIGN KEY (u_id) REFERENCES tbl_ser (u_id)
);
CREATE TABLE tbl_content_view (
v_id INT NOT NULL AUTO_INCREMENT,
con_id INT NOT NULL,
views BIGINT DEFAULT 0,
PRIMARY KEY (v_id),
FOREIGN KEY (con_id) REFERENCES tbl_content (con_id)
);
CREATE TABLE tbl_content_view_usermap (
v_id INT NOT NULL,
u_id INT NOT NULL,
viewtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
review_flag smallint(1)
FOREIGN KEY (v_id) REFERENCES tbl_content_view (v_id),
FOREIGN KEY (u_id) REFERENCES tbl_user (u_id)
);
CREATE TABLE tbl_content_view_nonuser_map (
v_id INT NOT NULL,
ip (? How should/could this be stored ?)
);
当注册的用户查看该页面时:
tbl_content_view
的观看列只有set views=views+1
u_id
在单独的表和标志中记录时间戳,当用户完成视频时标记被触发,花费X时间专门查看博客帖子或图像,从而允许视图再次增加当未注册的用户查看该页面时
此设置有任何问题吗?有更好的方法吗?