这对我来说是一个完全陌生的领域。任何人都可以指出我在如何创建社交图和正确的方式来表达它的正确方向?我正在用C#/ asp网建立一个网站,需要创建一个“朋友”功能......这种类型的东西通常完全存储在数据库中吗?如果是这样,怎么样?
答案 0 :(得分:3)
您主要关心的是绘制社交网络图片还是存储数据?
对于存储空间,您可以考虑使用a graph database。但是,这个领域最成熟的产品是neo4j,顾名思义是用Java编写的。这个SO discussion list .Net的一些替代方法。
修改强>
您仍然不清楚是否需要设计建议或代码示例。 Andrew Siemer撰写了一篇由两部分组成的文章,其中概述了the issues,然后介绍了some ASP.net code。我认为这绝不是一个完整的解决方案,但它可以让你在正确的方向上引导。
答案 1 :(得分:1)
你的问题相当开放。对于绘制复杂图形,我最喜欢的工具之一是Graphviz。 Graphviz可以使用有向图或非有向图。它可以将输入作为简单的文本文件,然后以各种格式输出图形。
答案 2 :(得分:0)
因此,您的问题主要是数据存储问题,以及如何在图表中存储和检索边缘。在您的问题中应用一些简单的图形术语:
节点/顶点:在您的情况下,每个人都将代表一个节点。
边缘/链接:节点之间的关系,在本例中为“朋友”,将在两个节点之间创建无向边。
因此,您需要在数据库中维护一个数据结构,以便您解决朋友之间的边缘关系。
在这个问题中可能会找到一些有用的信息:
challenge-how-to-implement-an-algorithm-for-six-degree-of-separation
此外,在决定如何存储边缘列表时应考虑的事项是您认为网站将生成多少边。这可能会影响您决定的存储机制。
希望这些指针有所帮助。