私は自分のウェブサイトを運営しています。 これは私が友情を保存する方法です:2人のユーザーの接続
id1 | id2
1 | 2
1 | 3
2 | 4
基本的にはユーザID 1は、ユーザID 2とID 3とユーザ2と友人である私が取得しようとしているどのような友人のユーザID 4.
がどのようになっています例えば、1と4が接続されています。現在はそのようなものだ:
1 -> 2 -> 4
それは4と3の間のことだ場合、それは次のようになります。
4 -> 2 -> 1 -> 3
アイデアは、これら2
可能な限り唯一の方法の間のような迅速なリンクを見つけることです私は、ループがたくさんある大規模な大規模なループを作成し、それがおそらくより効率的になるようなものを考えています。
旅行のセールスマンのバリエーションのようなものですか? – KevinDTimm
これは自明ではありません。 「グラフ理論」(http://en.wikipedia.org/wiki/Graph_theory)を見てください。 – engineerC
Friendshipsテーブルにはどのくらいのエントリがありますか?グラフの密度とは何ですか?つまり、ほとんどの人には2人の友人がいるか、ほとんどの人には何百人もの友人がいますか?あなたは絶対最短経路を見つける必要がありますか、あるいはどの経路もOKですか?どれくらい長くてもパスを検索したいのですか、たとえば最大5リンクで停止することはできますか? 'id1'は常に' id2'よりも少ないですか? – mellamokb