2010-03-07 2 views
0

У меня есть онлайн-словарь. Все входы сохраняются в таблице «id-word-unixtime». Теперь я хочу сделать статистику того, сколько слов было просмотрено за день, а затем сделать граф или таблицу с этими данными.Таблица с событиями unixtime в день статистика

Что такое лучший способ архивировать это? Должен ли я сделать другую таблицу для дат или написать сценарий PHP?

Мне просто нужно основное направление.

ответ

1

Многие вопросы есть, но главное, что вам кажется обеспокоенным, - это получение дат от unixtime.

У MySQL есть FROM_UNIXTIME().

Что-то вроде этого вы должны получить начал:

SELECT FROM_UNIXTIME(unixtime,'%Y-%m-%d') as the_date, 
     count(word) as word_count 
    FROM table 
-- add conditions here 
GROUP BY 1; 

Если у вас есть PHP конкретные вопросы, касающиеся представления данных, я предлагаю вам открыть еще один вопрос.

1

Возможно, вам захочется вычислить ответ один раз, а затем кешировать результат, чтобы уменьшить нагрузку на ваш сервер. Как только день закончен, вам нужно только вычислить всю статистику для него один раз.

Что-то важное для вещи, когда начинается день и заканчивается. Если ваш сайт имеет форму посетителей, вам, вероятно, следует использовать UTC. Если 95% посетителей из США, Восточное время может иметь больше смысла.

0

Вы правы, это очень простой SQL-запрос. Что-то вроде

SELECT word, count(word) FROM table 
WHERE unixtime BETWEEN (starttime AND endtime) GROUP BY word 

Вы можете рассчитать starttime и endtime в любом PHP или MySQL.

И конечно, вам нужно будет написать PHP-скрипт для рисования графика, но это другой вопрос.

1
SELECT COUNT(*), FROM_UNIXTIME(unixtime, '%Y-%M-%D') 
FROM table 
WHERE unixtime BETWEEN $start AND $end 
GROUP BY FROM_UNIXTIME(unixtime, '%Y-%M-%D') 

Это должно дать вам каждый день поисковые запросы в день. Это довольно дорогой поиск, поэтому вы можете его кэшировать.

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