我正在研究一种算法,将项目交付给用户,然后用户将对提交给他们的每个项目进行投票。我希望向用户提供最近发布到该用户尚未投票的数据库的项目。我的想法是向尽可能多的不同用户展示相同的帖子,但我想确保一个用户永远不会获得相同的帖子两次(因此他们不能在相同的帖子上投票两次扭曲结果)。我将加载我的算法找到的前20个项目,并在用户下载到5个项目时刷新列表。
呈现给用户的所有项目将对他们进行是或否投票。
我知道我可以存储一个用户投票的帖子ID数组,但对我而言,这似乎可能会在用户使用该应用程序一段时间后占用大量空间和计算量。我正在寻找有关如何处理此问题的建议。任何想法都会很棒,可能有助于激发一个想法。如果您想了解更多信息,请告诉我,我很乐意提供。谢谢!
答案 0 :(得分:0)
这是一个数据库。 存储列表
votes
-------
post_id
User_id
vote
vote_time
答案 1 :(得分:0)
假设您的帖子ID对他们有某种顺序(并且用户按顺序对每个帖子进行投票),您只需要存储最近添加的帖子的ID。这样你就可以加载下一个20个帖子ID了。如果用户可以对不按顺序的帖子进行投票,则可以存储他们投票的帖子部分。 (例如,user1已经对帖子3,4,5,6,9,10进行了投票,因此您存储了数字对3,6和9,10,表明所有帖子之间的所有帖子都已被投票,从而减少了金额您使用的空间。)
或者,如果您在发布帖子时存储了日期和时间,则可以跟踪用户投票的最后一个帖子的日期和时间。由此您可以将阵列所需的大小减少到在给定时间戳上发布的帖子数量。