私はMySQLに2つの(重要な)列AとBを持つテーブルを持っていて、その値はパッケージを参照しています。パッケージAがパッケージB.PHPを使用してMySQLデータベースのサイクルを検出する
に必要な場合にのみ、私はに期待していた場合、行は、グラフが非環式である場合、次いで(2)を決定し、PHPのグラフを生成する(1)テーブルにある(A DAG)、そうでない場合は、グラフのすべてのサイクルを(3)と印刷します。
SO 3は、(ジョンソンのアルゴリズム:http://dutta.csc.ncsu.edu/csc791_spring07/wrap/circuits_johnson.pdf)、理論的には、十分に簡単です。
(2)(3)何のサイクルをリストしないことによって行うことができますが、より高速なアルゴリズムがあった場合、私は思っていました。
I(1)の不明だ - 効率テーブルからデータを引き出し、(2)実装に役立つPHPのグラフを作成し、(3)。私はどうすればいいですか?
余談としては、私はまた、とBとの競合は、私もを望んだ場合にのみ(4)例を見つけた場合列を有する2つの列でも、第二のテーブルを持っている(またはことを確認します何もありません): AはBを必要とし、BはCを必要としますが、AはCと競合します
のコメントで任意のコードレビューをいただければと思います、あなたは最大の深さを持っていますか? – Xailor
有限ですが、それ以外にはありません。私はA => B => C => ... => Z => Aのような非常に長い鎖を持つかもしれません。私はまた、樹木(すなわち、未結合)とは対照的に、有向枝である可能性があることを明確にすべきである。 – Zeophlite