顶级产品计数器在骨干中

时间:2013-12-04 10:36:42

标签: sql-server backbone.js

我想记录每个产品的点击次数,以便向用户显示网站上最受欢迎的十大项目, 当用户浏览到mysite.com/productdetail/190等产品详细信息页面时,190是商品ID。

Item表在数据库中有超过10000条记录,是在Hits表中添加Item列还是创建新的SiteHits表来存储数字的更好方法击中每个项目。

  1. 如果我们将Hits列添加到Item表:

    • 插入将执行此查询:Update Item set Hits = Hits + 1 where ID = 100
    • 选择:select top (10) from Item where Hits > 0 order by LastUpdate DESC
  2. 添加新表:

    • 插入:如果没有记录与项目ID匹配,请插入新记录,否则更新点击次数
    • 选择:从项目中选择并加入新表格。
  3. 所以第二选择似乎比第一选择有很多操作。

    任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

我会创建一个单独的新表来存储命中,因为它只是一个统计信息而不是项目的属性。有点落在元数据领域。

将数据保存在单独的表中的好处是:

  1. 它更干净,主要是因为不需要为每个项目添加空列。如果您需要包含匹配信息的项目,只需从Item - >执行左连接即可。 Hits。如果你只是想要点击点击数据,就不需要进行额外的连接。

  2. 这很灵活。也许您想要添加有关该项的更多信息 - 这有助于防止现有的Item表变得臃肿。或者您可能想要跟踪点击发生的时间,然后您还希望在每次点击时存储时间戳信息。