4
回答
怎样实现每个用户每天只能对一个项目进行一次投票的功能?
科大讯飞通用文字识别100000次/天免费使用。立即申请   

呃,大致上就像上边说的那样了。感觉这样的功能很常见,但是自己不知道该怎么实现。

如果用数据库存储每一条投票记录的话,效率方面会不会太低呢?

<无标签>
举报
ZhangElliot
发帖于6年前 4回/756阅
共有4个答案 最后回答: 6年前
数据库肯定要存储投票记录!
--- 共有 3 条评论 ---
ZhangElliot回复 @红薯 : 那么,请问有没有什么优化方案呢? 6年前 回复
红薯回复 @ZhangElliot : 有那么多投票记录,当然要存储那么多数据,业务的需要 6年前 回复
ZhangElliot但是这样的话,假设有n个用户,m个可投票项,就会产生O(m*n)条投票记录。而每进行一次投票都需要对这些记录进行查询,是这样么? 或者,有什么其他的解决方案? 6年前 回复
我觉得一般的,这种功能不会关心某个人具体投的是什么票吧。 只需要关心,某个用户今天是不是投票了, 以及对于每一个投票项,支持它的有多少票这就足够了

引用来自“hanzhankang”的答案

我也很想知道,毕竟每次数据操作耗时。。。

IP地址过滤???

 

我的一个想法是,既然每天都会刷新所有人的投票权限,能不能在某个时间点把数据库清空呢?或者像用数组实现栈一样,维护一个中止ID,表示到这个ID为止的记录是有效的。在投票时验证对应ID是否存在于表中,如果存在则只修改不添加。这样应该可以避免清空数据库。
--- 共有 1 条评论 ---
hanzhankang数据库还是尽量不要清空的好。。投票代表用户的立场,一天只允许评论一次就好了。。 6年前 回复
顶部