Database 如何存储每个用户的投票

Database 如何存储每个用户的投票,database,voting,storing-data,Database,Voting,Storing Data,我正在研究一种算法,将项目交付给用户,然后用户将对提交给他们的每个项目进行投票。我希望向用户提供该用户尚未投票的最近发布到数据库的项目。我们的想法是向尽可能多的不同用户展示同一篇文章,但我想确保一个用户永远不会两次获得同一篇文章(因此他们不能对同一篇文章进行两次投票,从而扭曲结果)。我将加载算法找到的前20个项目,并在用户减少到5个项目时刷新列表 提交给用户的所有项目都将对其投赞成票或反对票 我知道我可以只存储一个用户投票的post-ID数组,但在我看来,在用户使用应用程序一段时间后,它可能会占

我正在研究一种算法,将项目交付给用户,然后用户将对提交给他们的每个项目进行投票。我希望向用户提供该用户尚未投票的最近发布到数据库的项目。我们的想法是向尽可能多的不同用户展示同一篇文章,但我想确保一个用户永远不会两次获得同一篇文章(因此他们不能对同一篇文章进行两次投票,从而扭曲结果)。我将加载算法找到的前20个项目,并在用户减少到5个项目时刷新列表

提交给用户的所有项目都将对其投赞成票或反对票

我知道我可以只存储一个用户投票的post-ID数组,但在我看来,在用户使用应用程序一段时间后,它可能会占用大量的空间和计算量。我正在寻找如何处理这个问题的建议。任何想法都很好,可能有助于激发想法。如果您想了解更多信息,请告诉我,我很乐意提供。谢谢

这是一个数据库。 存储列表

votes
-------
post_id
User_id
vote
vote_time

假设您的帖子ID具有某种顺序(并且用户按顺序对每篇帖子进行投票),您只需要存储最近添加的帖子的ID。这样你就可以加载下20个帖子ID了。如果用户可以按顺序对帖子进行投票,您可以存储他们投票的帖子部分。(例如,user1对帖子3,4,5,6,9,10进行了投票,因此您存储了数字对3,6和9,10,这表明千个ID之间的所有帖子都进行了投票,从而减少了您使用的空间。)


或者,如果您存储了发表文章的日期和时间,您可以跟踪用户投票的最后一篇文章的日期和时间。由此,您应该能够将阵列所需的大小减少到给定时间戳的帖子数量。

谢谢您的想法。我想这样的东西会很好用的!