我有一个网站,用户可以在其中提交可以投赞成票或反对票的帖子。
目前,用户从其所有帖子中获得的总积分不会保存。
最好的/常见的方法是什么?像Reddit或StackOverflow这样的网站是如何做到的?
我是否应该在每次有人对帖子进行投票时从总用户积分中添加和减去。
您可以缓存每个用户在所有帖子上的投票总和的结果,并在用户获得新投票时使每个用户的缓存无效,或者您可以将总数存储在数据库中,并确保任何赞成或反对都作为事务运行,该事务也会更新总数。
无论您是使用缓存还是在MySQL中使用额外的表(我不建议将其放在users
表中)都取决于您的网站有多大以及您想如何处理选票。
你应该每次都更新它..使用Ajax以获得更好的用户体验..这是一个基本的教程 http://www.w3schools.com/php/php_ajax_poll.asp
它可以通过多种方式完成 哈比布说但是,如果您想存储像stackoverflow一样投票的每个人的信息,那么制作两个表,一个用于存储帖子的ID,另一个用于存储对帖子投赞成票的用户我的意思是你的两张桌子应该是
POST Upvote
Id POST Id User_id
- 现在,当有人投赞成票时,只需将新记录添加到表中投赞成票引用表 POST 的 ID。
- 检索数据时,您将需要SQL 的左连接方法