Одной из самых важных вещей, которую вам необходимо учитывать, является масштабирование - в зависимости от того, сколько у вас пользователей, вы можете сделать что-то простое, например:
Начальное создание страницы (администратор)
INSERT INTO visit_track_table (id, count, url) VALUES (1, 0, 'page.php');
Обновление страницы (пользователь)
UPDATE visit_track_table SET count=count+1 WHERE url='page.php';
Проблема в том, что эта строка должна быть заблокирована для каждого посетителя на странице.
Лучшим подходом является определение масштабируемой сегментации, которая периодически пересчитывается для получения общего итога. Самый простой способ сделать это - предоставить случайный суффикс, чтобы меньшее число одновременно работающих пользователей блокировало одну и ту же строку базы данных.
Масштабируемость
UPDATE visit_track_table SET count=count+1 WHERE url='page.php-N'
В этом запросе суффикс -N будет сгенерирован настроенным параметром, который будет варьироваться от -0 до -100, если вы хотите выделить 100 строк на страницу. Оптимальное значение N будет зависеть от вашей пользовательской базы.
Подсчет (возможно, периодически выполняется cron-работой)
SELECT SUM(count) AS M FROM visit_track_table WHERE url LIKE 'page.php-%'
UPDATE visit_track_table SET count=M WHERE url='page.php'
РЕДАКТИРОВАТЬ: Да, вам нужна промежуточная страница с записью URL-адреса, на который вы направляетесь.