2012-06-11 5 views
0

У меня есть сайт, на котором пользователи отправляют сообщения, которые могут быть сохранены или опущены.Как обновить общее количество пользователей в mysql

В настоящий момент общие очки заработанных очков пользователя из всех его сообщений не сохраняются.

Каков наилучший/общий способ для этого? Как это делает сайт, такой как Reddit или StackOverflow?

Должен ли я добавлять и вычитать из общего количества пользователей каждый раз, когда кто-то голосует за сообщение.

+0

Существует много способов сделать это, и все они могут быть утверждены правильно. Как вы хотите, чтобы он работал? – afuzzyllama

ответ

0

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

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

0

Это может быть сделано во многих отношениях Один из них заявил Habeeb Но что, если вы хотите сохранить все информация, кто upvoted как StackOverflow затем сделать два стола, один для хранения идентификатора поста и другой для хранения пользователя, который upvoted пост я имею в виду ваши две таблицы должны быть

POST          Upvote 
Id  POST        Id  User_id 
  1. Теперь, когда кто-то upvote просто добавьте новую запись в таблицу Upvote , ссылаясь на идентификатор таблицы POST.
  2. При получении данных вам нужно будет Соединение слева Method из SQL
Смежные вопросы