【问题标题】:Suggest database structure for storing users mutual score建议用于存储用户相互分数的数据库结构
【发布时间】:2012-07-10 16:17:59
【问题描述】:

我有三张桌子 -用户 -帖子 -Activity(包含用户喜欢或不喜欢帖子的信息)。

我的业务需求是建议人们根据他们的好恶互相关注。

我创建了一个流程,根据用户的好恶计算相互得分。

例如:用户 AA 喜欢 id 为 100 的帖子,而不是也喜欢此帖子的其他用户(例如 50 个用户),我计算用户 AA 对所有 50 个用户的得分,通过添加每个常见帖子(如上面的 100在这种情况下,他们可以进入数百个或更多)like score,我建议用户 AA 用户 AA 相互得分最高的用户。

我的问题是,当我将每个用户与其他用户的计算(这样我不需要每次都从头开始)存储在一个平面表中时,该表变得很大。请建议我最好的数据库表结构来存储用户的相互得分数据

谢谢

【问题讨论】:

    标签: database-design


    【解决方案1】:

    我认为这不是表空间问题。如果您计算每对用户之间的分数,您将获得 O(n^2) 分数。您可能应该使用启发式方法来或多或少地获得似乎在每个用户中都获得好分数的 ppl,并仅计算这些对之间的分数(您可以将其限制为仅计算每个用户的最佳 10 个用户)。这样你会使用更少的空间,我会更快地工作。所有社交网络和此类应用程序在进行所有计算时都会使用启发式方法并作弊……您应该这样做……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-01
      • 2013-07-17
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多