0

我有三个表 -Users -Posts -Activity(包含用户喜欢或不喜欢帖子的信息)。

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

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

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

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

谢谢

4

1 回答 1

1

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

于 2012-07-11T21:59:13.143 回答