Хранение статистических данных в MySQL

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
pioneer
Сообщения: 136
Зарегистрирован: 2013.03.10, 23:27

Хранение статистических данных в MySQL

Сообщение pioneer »

Доброго времени суток, уважаемые форумчане!

Наверняка у большинства из вас при разработке того или иного проекта рано или поздно дело касалось вопроса хранения и обработки статистики - она бывает полезна многим и для многим. В моем случае при разработке интернет-магазина было принято решение выводить категории товаров (пользующиеся спросом и интересом у покупателей) в порядке убывания популярности. Тема, казалось бы, пустяковая - создать в таблице категорий еще одно поле "views_num" и при каждом посещении странички увеличивать число просмотров на единицу, но тут же первый вопрос: какого формата это должно быть поле - INT или BIGINT (а что если у нас мега-сайт с огромным числом посетителей)? А как организовать работу счетчика: при каждом рендеринге страницы категории увеличивать кол-во просмотров на 1 с учетом уникальности посетителей или без неё (т.е. проще говоря если один и тот же пользователь 3 раза зашел на страницу - счетчик должен увеличиться на 3?) А если и учитывать уникальность пользователей - выходит, для каждой из категорий потребуется создавать свою куку (мол, эту категорию такой-то пользователь уже просматривал, поэтому не плюсуем её рейтинг еще раз) на стороне клиента?

Согласен, вопросы наверное совсем уж дилетантские и простые, но порой самое простое может заводить в заблуждение и заставлять задуматься "а как лучше и эффективнее это сделать"?

Буду благодарен за проявленный интерес и участие в дискуссии :)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Хранение статистических данных в MySQL

Сообщение zelenin »

pioneer писал(а):Наверняка у большинства из вас при разработке того или иного проекта рано или поздно дело касалось вопроса хранения и обработки статистики - она бывает полезна многим и для многим. В моем случае при разработке интернет-магазина было принято решение выводить категории товаров (пользующиеся спросом и интересом у покупателей) в порядке убывания популярности.
кем было принято решение?
pioneer писал(а):первый вопрос: какого формата это должно быть поле - INT или BIGINT (а что если у нас мега-сайт с огромным числом посетителей)?
охренеть вопрос. Мне градусник покупать до 30 градусов или до 100, ведь я могу кипяток мерять?
pioneer писал(а):А как организовать работу счетчика: при каждом рендеринге страницы категории увеличивать кол-во просмотров на 1 с учетом уникальности посетителей или без неё (т.е. проще говоря если один и тот же пользователь 3 раза зашел на страницу - счетчик должен увеличиться на 3?)
ответьте на мой первый вопрос. Кто принимал решение, тот и должен сформулировать что ему важнее в его бизнес-решении. Уж никак не я или кто-либо должен сформулировать требование.
pioneer писал(а):А если и учитывать уникальность пользователей - выходит, для каждой из категорий потребуется создавать свою куку (мол, эту категорию такой-то пользователь уже просматривал, поэтому не плюсуем её рейтинг еще раз) на стороне клиента?
любым более-менее актуальным способом идентифицируйте. Кука, имхо, норм.
pioneer
Сообщения: 136
Зарегистрирован: 2013.03.10, 23:27

Re: Хранение статистических данных в MySQL

Сообщение pioneer »

zelenin писал(а):кем было принято решение?
Заказчиком.
zelenin писал(а):охренеть вопрос. Мне градусник покупать до 30 градусов или до 100, ведь я могу кипяток мерять?
Смотря что мерять. Кипяток - да, с расчетом на 100 градусов - потому что вы знаете, что вода более 100 градусов - пар. Как измерять неизвестную в перспективах величину объемов посещаемости?
zelenin писал(а):ответьте на мой первый вопрос. Кто принимал решение, тот и должен сформулировать что ему важнее в его бизнес-решении. Уж никак не я или кто-либо должен сформулировать требование.
Мой заказчик, как и большинство "типичных", далек от программирования и понимания того, что он хочет - просто хочет, чтобы был вывод категорий по популярности в порядке убывания. Насчет будущей посещаемости сайта настроен очень оптимистично - мол, повалят миллионы. Я тут всего лишь как разработчик консультируюсь у коллег по принятию решения в интересующем вопросе.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Хранение статистических данных в MySQL

Сообщение zelenin »

pioneer писал(а):Смотря что мерять. Кипяток - да, с расчетом на 100 градусов - потому что вы знаете, что вода более 100 градусов - пар. Как измерять неизвестную в перспективах величину объемов посещаемости?
прикинуть.
pioneer писал(а):Мой заказчик, как и большинство "типичных", далек от программирования и понимания того, что он хочет - просто хочет, чтобы был вывод категорий по популярности в порядке убывания.
не думайте что он дурак. Спросите, что для него значит популярность: кол-во просмотров или кол-во уникальных посетителей. Не понимаю, зачем вы такую простую мелочь спрашиваете тут.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Хранение статистических данных в MySQL

Сообщение samdark »

piwik поставьте и хватит.
Ответить