首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查用户是否已投票投票

检查用户是否已投票投票
EN

Stack Overflow用户
提问于 2013-01-23 01:33:45
回答 5查看 1.3K关注 0票数 0

我已经创建了一个投票系统,只有登录的用户才能投票。我有一个表,其中存储了用户和投票的外键,如下所示:

代码语言:javascript
复制
poll_voters
| ref_user_id | ref_poll_id |

当用户投票时,我检查该用户id是否与表中的当前投票一起存在。如果是,则用户已经投票了。

我想知道是否应该在每次加载页面时都这样做,以了解是否显示投票表单或结果(如果用户已经投票)。另一种方法是有一个会话来说明用户是否已经投票。当他登录时,我需要检查并设置会话。

你觉得我该怎么做?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-23 01:40:04

最好有一个会话,并在用户登录时检查投票状态。没有必要在每个页面负载时都检查数据库,这将是低效的(尽管如果负载很轻,它仍然可以工作)。

您还需要在用户投票时刷新页面(或元素,使用ajax)。

票数 0
EN

Stack Overflow用户

发布于 2013-01-23 01:46:12

我建议您呈现所有不带投票指示器的HTML,然后在页面加载到浏览器中之后执行AJAX调用以获取项目的投票状态。

这允许您在浏览器上或在服务器上静态地缓存页面,但仍然支持动态更新。因此,如果用户再次访问该页面,并且他们更改了投票状态,则该页面将被更新。

否则,对于每个用户的会话,您必须始终以不同的方式重新呈现所有HTML页面。

票数 1
EN

Stack Overflow用户

发布于 2013-01-23 02:16:34

您可以将其添加到insert语句

代码语言:javascript
复制
if not exists(select ref_user_id 
    from poll_voters 
    where ref_user_id =@ref_user_id and ref_poll_id = @ref_poll_id)
insert into poll_voters (ref_user_id ,ref_poll_id )
values (@ref_user_id ,@ref_poll_id )

这样,每个人在每次投票中只能投票一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14464615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档