我需要存储一些统计信息:某些项目的点击次数(超过1000项)。 我需要每天存储点击次数: 例如:第1天:1234点击第1项 第2天:12312点击第1项 第n天:13123点击第1项
我有一台便宜的服务器,所以我需要一种最佳方式来存储所有这些数据。后来我需要从这个数据中生成图表
有什么想法吗?
答案 0 :(得分:2)
存储个人每天点击数据库,第二天运行cron job会生成摘要报告,在其他表中存储(小得多)结果,清理前一天的原始数据......
编辑: 如果您只想每天监控每个项目的逻辑结构,那么:
raport_date - date
item_id - reference to table stored info about items
hits - number of calculated hits
一切都取决于您需要的报告/图表
答案 1 :(得分:2)
为什么不制作一个包含3列的表格(如果您愿意,还可以添加主要列)。
我认为您需要以下内容:
所以我们可以说我们的桌子名为“clickTracking”。
你可以这样做,“插入clickTracking set day = date_format(now(),”%Y-%m-%d“),itemId = 1,clicks = clicks + 1重复键更新点击次数=点击次数+1 ;“
我在下面附上了一些带有主键的示例mySQL。如果我有一个auto_increment字段,我发现数据更容易使用,但这不是必需的。
mysql> create table clickTracking (id int unsigned not null primary key auto_increment,day datetime not null, itemId int unsigned not null, clicks int unsigned not null);
Query OK, 0 rows affected (0.00 sec)
mysql> create unique index item on clickTracking (day,itemId);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> insert into clickTracking set day = date_format(now(),"%Y-%m-%d"), itemId = 1, clicks = clicks + 1 on duplicate key update clicks = clicks + 1;
Query OK, 1 row affected (0.00 sec)
mysql> insert into clickTracking set day = date_format(now(),"%Y-%m-%d"), itemId = 1, clicks = clicks + 1 on duplicate key update clicks = clicks + 1;
Query OK, 2 rows affected (0.00 sec)
mysql> insert into clickTracking set day = date_format(now(),"%Y-%m-%d"), itemId = 1, clicks = clicks + 1 on duplicate key update clicks = clicks + 1;
Query OK, 2 rows affected (0.00 sec)
mysql> insert into clickTracking set day = date_format(now(),"%Y-%m-%d"), itemId = 2, clicks = clicks + 1 on duplicate key update clicks = clicks + 1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from clickTracking;
+----+---------------------+--------+--------+
| id | day | itemId | clicks |
+----+---------------------+--------+--------+
| 1 | 2011-03-20 00:00:00 | 1 | 3 |
| 2 | 2011-03-20 00:00:00 | 2 | 1 |
+----+---------------------+--------+--------+
2 rows in set (0.00 sec)
有几种方法可以做到这一点。我提供了一种可能的解决方案。我更喜欢这种方法,因为它使报告易于制作,并且在服务器上具有最小的存储量。
我建议另外制作一个“项目”表,与此处的itemId相对应。