我正在构建一个类似Wiki / Blog的应用程序,我对每个文章存储View Count的最佳方法有疑问。要求是我只想存储查看文章的唯一用户数而不是总视图数。到目前为止,我已经提出了3种不同的方法来实现:
1。 SQL Server存储过程:这种方法的问题是数据存储在XML数据类型中,使用此方法实现要求可能有点复杂。我将此作为最后的手段离开。
2。 MSMQ:这可以很好用,因为我可以连续处理请求。这种方法的唯一问题是,我无法确保在主机服务器上安装MSMQ。这是不可能的!
第3。使用Application.Lock()
:我知道使用此方法我可以锁定对Application
对象的访问权限,更新应用程序中的某些条目,更新数据库,然后调用Application.Unlock()
。虽然这听起来像一种功能性方法,但它仍然感觉像是一种解决方法。
有没有人建议我应该怎样做才能达到要求?
答案 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。
但为什么不调查谷歌分析?您需要的所有信息(以及更多)