我正在研究一种将项目交付给用户的算法,然后用户将对提交给他们的每一项进行投票。我希望向用户提供最近发布到数据库的项目,该用户尚未对其进行投票。这样做的目的是向尽可能多的不同用户展示同一篇文章,但我想确保一个用户不会两次获得相同的帖子(这样他们就不能在同一篇文章上投票,两次歪曲结果)。我将加载我的算法找到的前20项,并在用户下到5项时刷新列表。
提交给用户的所有项目都将对其投赞成票或反对票。
我知道我可以存储一个用户投票的post ID数组,但在我看来,在用户使用该应用程序一段时间后,它的空间很大,计算量也很大。我正在寻找如何处理这个问题的建议。任何想法都是很棒的,可能有助于激发一个想法。如果你想要更多的信息,请告诉我,我很乐意提供。谢谢!
发布于 2016-02-22 17:00:32
假设您的post ID具有某种顺序顺序(并且用户按顺序对每个帖子进行投票),您应该只需要存储最近添加的帖子的ID。这样你就可以加载接下来的20个帖子ID。如果用户可以按顺序对帖子进行投票,你可以存储他们投票的帖子部分。(例如user1已经对posts 3、4、5、6、9、10进行了投票,因此您可以存储编号对3、6和9、10,这意味着已经对ID之间的所有帖子进行了投票,从而减少了您使用的空间。)
或者,如果您有存储的日期和时间时,发布的帖子,您可以跟踪的日期和时间的最后一个帖子,用户投票。从这一点出发,您应该能够将数组所需的大小减少到给定时间戳上的帖子数量。
发布于 2016-02-22 16:48:55
是个数据库。存储列表
votes
-------
post_id
User_id
vote
vote_time
https://stackoverflow.com/questions/35558631
复制相似问题