适用于视图计数实施的表设置,包括ip跟踪?

时间:2012-07-20 20:46:46

标签: php sql content-management-system

我目前正在为能够托管图片,视频和博客帖子的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时间专门查看博客帖子或图像,从而允许视图再次增加
  • 在视频播放5秒之前,视频的观看次数不会增加

当未注册的用户查看该页面时

  • 针对非用户视图映射表检查用户ip(?more??),如果最近没有使用ip,则视图计数递增,用户ip与当前时间戳一起存储

此设置有任何问题吗?有更好的方法吗?

0 个答案:

没有答案