文章的点击访问怎样实现统计

“添加这个功能,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语句,就把用户的要求完成了。


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

posted @ 2013-05-30 15:35  Insus.NET  阅读(1155)  评论(0编辑  收藏  举报