怎样实现每个用户每天只能对一个项目进行一次投票的功能?

ZhangElliot 发布于 2012/04/20 08:59
阅读 758
收藏 0

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

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

加载中
0
红薯
红薯
数据库肯定要存储投票记录!
ZhangElliot
ZhangElliot
回复 @红薯 : 那么,请问有没有什么优化方案呢?
红薯
红薯
回复 @ZhangElliot : 有那么多投票记录,当然要存储那么多数据,业务的需要
ZhangElliot
ZhangElliot
但是这样的话,假设有n个用户,m个可投票项,就会产生O(m*n)条投票记录。而每进行一次投票都需要对这些记录进行查询,是这样么? 或者,有什么其他的解决方案?
0
你来打我呀
你来打我呀

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

IP地址过滤???

 

0
b
buptwhis
我觉得一般的,这种功能不会关心某个人具体投的是什么票吧。 只需要关心,某个用户今天是不是投票了, 以及对于每一个投票项,支持它的有多少票这就足够了
0
ZhangElliot
ZhangElliot

引用来自“hanzhankang”的答案

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

IP地址过滤???

 

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