Как я могу получить количество просмотров поста как счетчик просмотров stackoverflow? - PullRequest
0 голосов
/ 30 марта 2012

Для stackoverflow.com есть статистика количества просмотров по вопросу.

Как это отслеживается? Зарегистрированные и незарегистрированные пользователи могут просматривать любые вопросы.

Какова схема отношений базы данных для этого подсчета?

Должен ли я просто увеличить значение столбца для конкретного вопроса в таблице базы данных?

Или я должен добавить новую запись / строку, когда пользователь просматривает этот вопрос, а затем отобразить счетчик, отражающий результат суммы (тот столбец) этой таблицы?

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Существует множество подходов к этому.Вы упомянули две, но есть и другие, которые в зависимости от вашей ситуации подойдут вам лучше.

, если у вас много обращений к вашему сайту, как, например, stackoverflow, увеличивая счетчик таблицы базы данных, когда один человек просматриваетвопрос может быть довольно дорогим (в зависимости от того, как настроена их база данных, я не уверен).

другой подход, который я использовал ранее, заключается в хранении представлений в движке кеша, таком как memcache / xcache / eaccelerator(у каждого из них есть свои достоинства) и есть cron, который будет работать ежечасно / еженедельно / и т.д.это очистит представления и вставит в таблицу базы данных, на которую ссылается уникальный идентификатор в случае SO.com, идентификатор вопроса, и сбросит счетчики в кеше.

Если вам нужна полная надежность, механизм noSQLнапример, mongoDB отлично подходит для быстрого и эффективного хранения данных значения ключа.

0 голосов
/ 30 марта 2012

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

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

Итак, для более подробного объяснения, я предлагаю вам добавить в свой вопрос целочисленный столбецТаблица.Каждый раз, когда вопрос просматривается, вы просто увеличиваете счетчик.Будь проще.Держите это быстро.

...