Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我应该合计吗?这是明智的做法吗?_Mysql_Database_Ruby On Rails 3_Database Design - Fatal编程技术网

Mysql 我应该合计吗?这是明智的做法吗?

Mysql 我应该合计吗?这是明智的做法吗?,mysql,database,ruby-on-rails-3,database-design,Mysql,Database,Ruby On Rails 3,Database Design,我有一个跟踪网页浏览量的web应用程序。该应用程序检查最终用户的IP地址,并将其映射到一个国家。到目前为止,这里一切正常 然而,我意识到这个表(称为视图)的填充速度非常快,因为它跟踪每个页面视图。在某些达到500k、1M等的页面上,可能会在短时间内在此表上存储数百万条记录 我考虑每24小时将结果汇总到一个新表中(称为country\u views),然后删除视图中的记录 比如说。我的视图表可能如下所示: page_id | country_id | created_at | updated_at

我有一个跟踪网页浏览量的web应用程序。该应用程序检查最终用户的IP地址,并将其映射到一个国家。到目前为止,这里一切正常

然而,我意识到这个表(称为
视图
)的填充速度非常快,因为它跟踪每个页面视图。在某些达到500k、1M等的页面上,可能会在短时间内在此表上存储数百万条记录

我考虑每24小时将结果汇总到一个新表中(称为
country\u views
),然后删除
视图中的记录

比如说。我的
视图
表可能如下所示:

page_id | country_id | created_at | updated_at
======= | ========== |=========== | ==========
1       | 1          | 2011-11... | 2011-11...
1       | 2          | 2011-11... | 2011-11...
1       | 1          | 2011-11... | 2011-11...
1       | 1          | 2011-11... | 2011-11...
2       | 4          | 2011-11... | 2011-11...
2       | 3          | 2011-11... | 2011-11...
page_id | country_id | total | created_at | updated_at
======= | ========== | ===== | ========== | ==========
1       | 1          | 3     | 2011-11... | 2011-11...
1       | 2          | 1     | 2011-11... | 2011-11...
2       | 4          | 1     | 2011-11... | 2011-11...
2       | 3          | 1     | 2011-11... | 2011-11...
24小时后。我计算这个表中的结果,并将它们放入一个名为
country\u views
的新表中。这可能看起来像:

page_id | country_id | created_at | updated_at
======= | ========== |=========== | ==========
1       | 1          | 2011-11... | 2011-11...
1       | 2          | 2011-11... | 2011-11...
1       | 1          | 2011-11... | 2011-11...
1       | 1          | 2011-11... | 2011-11...
2       | 4          | 2011-11... | 2011-11...
2       | 3          | 2011-11... | 2011-11...
page_id | country_id | total | created_at | updated_at
======= | ========== | ===== | ========== | ==========
1       | 1          | 3     | 2011-11... | 2011-11...
1       | 2          | 1     | 2011-11... | 2011-11...
2       | 4          | 1     | 2011-11... | 2011-11...
2       | 3          | 1     | 2011-11... | 2011-11...
在同一个web应用程序上。我计划以饼图的形式向某些用户显示这些数据,以显示哪些国家正在查看某些页面


这是明智的做法吗?有更好的方法吗?

我认为这种方法很好,特别是因为它可以很容易地通过编程撤销。

为什么不在视图中保留一个计数呢


您只想计算哪个国家查看了哪个页面,所以只要添加一个计数列,如果记录已经存在,则增加它,否则添加一个新行:)

Hmmm,我不知道它是否可以撤消,由于
视图
表中的结果将被永久删除,这意味着您可以使用存储的聚合数据轻松地重新创建原始数据。这很有意义,尽管您的数据有很多重复项。据我所知,一个页面只创建了一次,但查看了多次。但是,如果我还想跟踪一天中查看了多少次,该怎么办。拥有
count
列不能为我提供该数据集