我的意思是分析2个用户个人资料我得到的分数是互惠的
a.affinity(b) == b.affinity(a)
我特别想知道:
您将使用哪个架构来实现关联表
db mysql,redis,..
您将使用哪种技术更新背景中的亲和力分数?
由于
答案 0 :(得分:1)
对于数据库设计部分,我建议使用join/junction table concept,除非在这种情况下,您要将表连接到自身。例如,如果您的用户表类似于:
UserId UserName
------ --------
1 User Uno
2 User Dos
...
然后您的联接表看起来像:
UserIdA UserIdB AffinityScore
------ -------- -------------
1 2 56
34 208 137
其中UserIdA和UserIdB是第一个表中UserId的外键。 (你必须检查并确保一旦设置了UidA和UidB,例如分别为值1和2,如果值被交换则不重复关系,例如UidA和UidB的值分别为2和1,这可能导致应用程序中有些奇怪。如果使用Sql Server或MySql,您可以使用CHECK约束。)
就连接表概念而言,您选择db并不重要。它只是一个带有外键的表。对于后台更新,它取决于您的平台。可能是一个cron作业启动一个可执行文件或SSIS(Sql Server)运行T-Sql脚本和其中的很多东西。