【问题标题】:How to store votes per user如何存储每个用户的投票
【发布时间】:2016-02-22 16:20:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: database voting storing-data


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的想法。我认为这样的事情会很完美!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2011-05-17
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多