我想记录每个产品的点击次数,以便向用户显示网站上最受欢迎的十大项目,
当用户浏览到mysite.com/productdetail/190
等产品详细信息页面时,190是商品ID。
Item
表在数据库中有超过10000条记录,是在Hits
表中添加Item
列还是创建新的SiteHits
表来存储数字的更好方法击中每个项目。
如果我们将Hits列添加到Item表:
Update Item set Hits = Hits + 1 where ID = 100
select top (10) from Item where Hits > 0 order by LastUpdate DESC
添加新表:
所以第二选择似乎比第一选择有很多操作。
任何想法都会受到赞赏。
答案 0 :(得分:1)
我会创建一个单独的新表来存储命中,因为它只是一个统计信息而不是项目的属性。有点落在元数据领域。
将数据保存在单独的表中的好处是:
它更干净,主要是因为不需要为每个项目添加空列。如果您需要包含匹配信息的项目,只需从Item
- >执行左连接即可。 Hits
。如果你只是想要点击点击数据,就不需要进行额外的连接。
这很灵活。也许您想要添加有关该项的更多信息 - 这有助于防止现有的Item
表变得臃肿。或者您可能想要跟踪点击发生的时间,然后您还希望在每次点击时存储时间戳信息。