2013-06-10 2 views
1

У моего клиента есть таблица, которая отслеживает общее количество просмотров для каждой из его статей. Проблема в том, что они хотят, чтобы я разорвал число просмотров на несколько дней. Я могу с легкостью запросить db и захватить количество просмотров, но я не уверен, как захватить количество просмотров каждого дня (для каждой статьи, конечно).Лучший способ обновить количество просмотров в PHP/MySQL

В случае, если я не буду чист (как обычно, мне сказали), у меня есть поле в таблице, которое собирает все мнения по каждой статье без учета даты или времени. Если статья была просмотрена, строка будет плюс один. Посмотрите на запись через год, а количество просмотров - 2000. Вот и все.

То, что я хочу сделать, это захватить каждый день счетчик просмотров для каждой статьи и залить это в свою собственную таблицу, но я НЕ МОГУТ воздействовать на указанное поле/запись количества просмотров. Таким образом, клиент может просматривать количество просмотров каждого дня в каждой статье. Любая идея о наилучшем подходе?

Я надеюсь, что все имело смысл !!

+0

Существует не один лучший способ. И вы не указали какую-либо структуру таблицы, данные примера или что-то еще. –

ответ

2

Если бы я был вами, я бы сделал новую таблицу для просмотров и вставлял новую запись на каждый вид, и когда она просматривалась, я бы выбрал все взгляды, которые датируются сегодня, и подсчитывают их, и это даст мне количество раз статью смотрели сегодня, и это будет по-прежнему держать общее количество

+0

Это то, что я бы рекомендовал. Когда вы записываете данные, которые будут использоваться в отчетах любого типа, всегда лучше записывать их как можно более сырые. Если вы записываете такие данные, суммируя 1 на общую сумму, вы будете в плохой ситуации в будущем, когда ваш клиент попросит просмотреть данные по-другому. Итак, держите его как можно более сырым: это даст вам всю гибкость, чтобы изменить способ представления отчетов. – Marcovecchio

0

что-то вроде:

INSERT INTO `daily_views` SET `views` = 
    SELECT COUNT(*) FROM `views_table` 
    WHERE `date` BETWEEN '2013-06-10' 
    AND '2013-06-11' 
    AND `post_id` = 1 
, `post_id` = 1; 
0

Начало в канун Нового года. Каждый день берем счет и храните его в отдельной таблице. На следующий день вычитайте текущий счет с сохраненным - это вчерашний счет - сохраните разницу в другой таблице вместе с датой. Итак, ясно или нет?

Смежные вопросы