我有一个网站,用户可以在其中提交可以被赞成或反对的帖子。
目前,用户从他的所有帖子中获得的总积分没有保存。
最好/常见的方法是什么?像 Reddit 或 StackOverflow 这样的网站是如何做到的?
每次有人对帖子投票时,我是否应该从总用户积分中添加和减去?
你应该每次都更新这个.. 使用 ajax 以获得更好的用户体验.. 这是一个基本教程http://www.w3schools.com/php/php_ajax_poll.asp
它可以通过多种方式完成 一个是由 Habeeb 说的 但是如果你想存储每个像 stackoverflow 一样赞成的信息然后制作两个表来存储帖子的 id 另一个来存储支持帖子的用户我的意思是你的两个表应该是
POST Upvote
Id POST Id User_id
您可以缓存每个用户对所有帖子的投票总和的结果,并在用户获得新投票时使每个用户的缓存无效,或者您可以将总计数存储在数据库中并确保任何赞成或反对票运行作为也更新总数的事务。
无论您是使用缓存还是在 MySQL 中使用额外的表(我不建议将其放在您的users
表中)来执行此操作,都取决于您的站点有多大以及您想对选票做什么。