これは私にとってまったく未知の領域です。ソーシャルグラフを作成する方法とそれを表現する最良の方法について、誰かが私を正しい方向に向けることができますか? 私は C#/asp net で Web サイトを構築しており、「友達」機能を作成する必要があります...この種のものは通常、DB に完全に保存されますか? もしそうなら、どのように?
3 に答える
あなたの主な関心事は、ソーシャル ネットワークの全体像を描くことですか、それともデータを保存することですか?
ストレージについては、グラフ データベースを検討してください。ただし、この分野で最も成熟した製品は neo4j であり、名前が示唆するように Java で書かれています。このSO ディスカッションには、.Net の代替アプローチがいくつかリストされています。
編集
設計のアドバイスが必要なのか、コード サンプルが必要なのか、まだ明確ではありません。Andrew Siemer は 2 部構成の記事を書きました。この記事では、問題の概要を説明し、 ASP.net コードを紹介しています。決して完全な解決策ではないと思いますが、正しい方向に舵を切ることができます.
したがって、問題は主にデータストレージの問題であり、グラフにエッジを保存および取得する方法です。問題にいくつかの簡単なグラフ用語を適用します。
ノード/頂点: あなたの場合、各人はノードを表します。
エッジ/リンク: ノード間の関係 (この場合は「友人」) は、2 つのノード間に無向エッジを作成します。
そのため、友人間のエッジ関係を解決できるように、DB でデータ構造を維持する必要があります。
この質問には、いくつかの有用な情報が含まれている可能性があります。
また、エッジ リストの保存方法を決定する際に考慮する必要があるのは、サイトで生成されるエッジの数です。これはおそらく、決定したストレージ メカニズムに影響します。
それらの指針が役立つことを願っています。