让我们想象一个社交网络,其中每个用户都可以通过委托等方式从其他人那里获得声誉。因此,当 A 委托给 B 时,A 和 B 最初的声誉为 1,那么 A 有 0,B 有 2。然后 B 可以委托给 C,依此类推。
此外 - 延迟有其范围,并且范围可以嵌套。因此,A 可以在所有主题、或仅编程或仅 c# 上委托声誉。他可以将编程委派给 B,但将 C# 委派给 C。这意味着最终声誉因给定范围而异。
所以我们得到了一种有向图结构(可能是一棵树,但还不清楚循环是什么),我们需要遍历它来计算声誉。
我正在尝试使用 DDD 原则对其进行建模,但我不确定这里的聚合是什么。
我想委托树/图是一个候选者,因为聚合是一个一致性单位。然而,这意味着聚合将非常大。范围的事情使它更加复杂,因为它使聚合边界不清楚。C# 上的委托是编程委托的一部分吗?
用户呢?作为一个聚合,它必须存储来自/来自其他用户的引用(委托)。再次 - 给定用户属于哪个聚合?
另一个问题是如何有效地计算声誉。我猜在这种情况下,图形数据库比关系数据库更合适,但这是唯一好的答案吗?