如何存储每个用户的投票

How to store votes per user

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

呈现给用户的所有项目都将对它们投赞成票或反对票。

我知道我可以只存储用户投票的 post ID 数组,但对我来说,这似乎 space 在用户使用应用程序一段时间后会很繁重和计算繁重.我正在寻找有关如何处理此问题的建议。任何想法都会很棒,可能有助于激发一个想法。如果您想了解更多信息,请告诉我,我很乐意提供。谢谢!

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

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

假设您的 post ID 具有某种连续顺序(并且用户按顺序对每个 post 进行投票)您应该只需要存储 post 这是最近添加的。这样您就可以加载接下来的 20 post 个 ID。如果用户可以无序地对 posts 进行投票,您可以存储他们投票的 posts 的部分。 (例如,用户 1 对 posts 3,4,5,6,9,10 进行了投票,因此您存储数字对 3,6 和 9,10,表示您 ID 之间的所有 posts 已被投了赞成票,从而减少了您使用的 space 数量。)

或者,如果您存储了 post 的日期和时间,您可以跟踪用户最后一次 post 投票的日期和时间。由此,您应该能够将数组所需的大小减少到给定时间戳中生成的 post 的数量。