Почему бы не создать таблицу с 3 столбцами (вы можете добавить основной столбец, если хотите).
Мне кажется, вам нужно следующее:
- Столбец с именем, скажем, «день», с типом DateTime
- Столбец с именем, скажем, «itemId», с типом Int, то есть как вы узнаете, по какому элементу был нажат
- Столбец с именем, скажем, «клики», с типом Int, который будет вашим счетчиком
Итак, допустим, наша таблица была названа, «clickTracking».
Вы можете сделать следующее: «вставить в clickTracking set day = date_format (now (),«% Y-% m-% d »), itemId = 1, кликов = кликов + 1 при повторном обновлении ключа clicks = кликов + 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)
Есть несколько способов сделать это.Я предоставил одно возможное решение.Я предпочитаю этот метод, потому что он упрощает создание отчетов и имеет минимальный объем памяти на сервере.
Я бы порекомендовал создать дополнительную таблицу «items», которая соответствует itemId здесь.