首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >页面访问统计

问页面访问统计
EN

Stack Overflow用户
提问于 2010-09-02 02:37:30
回答 1查看 569关注 0票数 1

我需要实现产品页面访问统计(按天)。如何在Rails中更好地做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2010-09-02 03:20:13

在Rails中构建这样的东西的最快、最麻烦的方法是创建一个跟踪表:

代码语言:javascript
复制
create_table :product_views do |t|
  t.integer :product_id, :null => false
  t.date :viewed_at, :null => false
  t.integer :views, :null => false, :default => 1
end

add_index :product_views, [ :product_id, :viewed_at ], :unique => true
add_index :product_views, :viewed_at

唯一索引将意味着您每天每个产品都有一个条目。将有几天没有该产品的视图的条目丢失。这也意味着,如果MySQL是您的后端数据库,那么您可以使用它的ON DUPLICATE KEY特性。

您可以使用单个SQL调用来填充以下内容:

代码语言:javascript
复制
class Product
  def self.record_view!(product_id)
    connection.execute(
      sanitize_sql([
        "INSERT INTO product_views (product_id, viewed_at)
          VALUES (?, CURRENT_DATE())
          ON DUPLICATE KEY UPDATE views=views+1",
        product_id
      ])
    )
  end

  def record_view!
    self.class.record_view!(self.id)
  end
end

这可以在任何时候调用,并会将1加到您的计数器表中。您可以使用标准SQL很容易地报告这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3621103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档