zoukankan      html  css  js  c++  java
  • 文章的点击访问怎样实现统计

    “添加这个功能,http://www.cnblogs.com/insus/archive/2013/05/30/3107681.html  嗯,基本上符合预期的要求,不过,你还得要为网站每一篇文章的点击做统计。”

    看到这个要求,你也许也会首先想起,去数据库的存储文章的表中,再添加一个字段,如[Hits],写一个存储过程来更些此字段。

    CREATE PROCEDURE [dbo].[usp_Article_UpdateHit]
    (
        @Article_nbr INT
    )
    AS
    UPDATE [dbo].[Article] SET [Hits] = [Hits] + 1 WHERE [Article_nbr] = @Article_nbr
    View Code


    然后去网站的浏览文章的页面,在Page_Load事件中,执行刚才写好的存储过程。
    基本上这个意思。

    不过,Insus.NET不是跟上这样想的。最始码是实现一个功能,不想修改太多地方,前端网页也不想改,存储文章的表也不想去改它。
    不会吧? 是的,Insus.NET就是这样想的。

    文章的访问统计怎样实现?下面是Insus.NET的方法:
    重新创建一张表,大约这样子:

    CREATE TABLE [dbo].[Article_Visit_Info]
    (
        [avi_nbr] INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
        [Article_nbr] INT NOT NULL FOREIGN KEY REFERENCES [dbo].[Article] ([Article_nbr]),
        [Visit_Date] DATETIME NOT NULL DEFAULT(CURRENT_TIMESTAMP)
    )
    View Code


    创建好表之后,再创建一个存储过程,是用来存储当有文章点击访问时,插一笔记录入刚才的表中:

    CREATE PROCEDURE [dbo].[usp_Article_Visit_Info_Update]
    (
        @Article_nbr INT
    )
    AS
    INSERT INTO [dbo].[Article_Visit_Info] ([Article_nbr]) VALUES (@Article_nbr)
    View Code


    写到这里,你会问题,Insus.NET你是怎样知道文章被点击访问的? 问得及时,Insus.NET下面就是要解决这个的。由于原来写好的程序,获取每一篇文章,均是By PrimaryKey 来读取,也就是以主键作为参数获取,因此Insus.NET只是在数据库修改一下这个存储过程即可,添加高亮部分的SQL语句,就把用户的要求完成了。


     当然有了这个表的信息,我们就可以统计出每篇文章的点击访问量,还可以每天,每星期,每月,每季度或是每年的访问量进行统计。具体还要看客户的要求了。

  • 相关阅读:
    java开发实战经典
    defer属性---->执行外部脚本
    深入理解JavaScript 模块模式
    JavaScript模块化开发一瞥
    缓存是新的内存
    php站点
    数据库
    .NET中使用Redis
    Scrum中的User Story
    如何编写敏捷开发中的user story
  • 原文地址:https://www.cnblogs.com/insus/p/3108302.html
Copyright © 2011-2022 走看看