ASP.NET - 在数据库中存储文章视图计数

时间:2013-01-28 17:29:03

标签: c# asp.net sql-server msmq

我正在构建一个类似Wiki / Blog的应用程序,我对每个文章存储View Count的最佳方法有疑问。要求是我只想存储查看文章的唯一用户数而不是总视图数。到目前为止,我已经提出了3种不同的方法来实现:

1。 SQL Server存储过程:这种方法的问题是数据存储在XML数据类型中,使用此方法实现要求可能有点复杂。我将此作为最后的手段离开。

2。 MSMQ:这可以很好用,因为我可以连续处理请求。这种方法的唯一问题是,我无法确保在主机服务器上安装MSMQ。这是不可能的!

第3。使用Application.Lock()我知道使用此方法我可以锁定对Application对象的访问权限,更新应用程序中的某些条目,更新数据库,然后调用Application.Unlock()。虽然这听起来像一种功能性方法,但它仍然感觉像是一种解决方法。

有没有人建议我应该怎样做才能达到要求?

1 个答案:

答案 0 :(得分:2)

MsMQ和Application.Lock不是您想要做的简单考虑的选项。 (Application.Lock()是def NO GO)

我也认为没有理由使用XML。存储过程不依赖于XML

创建一个表格 [页,USERIP]

在页面的每个视图

insert into <table>(page,userip) values(@page,@userip)

对于统计信息,只需发出查询

select count(*) from <table> group by userip having page=@page

这标识了用户的IP,而不是完全失败,因为多个用户可以来自同一个IP。

但为什么不调查谷歌分析?您需要的所有信息(以及更多)