複数のテーブルを介してクエリのデータをフェッチするための最適なパスを見つけるのに役立つアルゴリズムを作成しようとしています。テーブルには、それらを相互に関連付ける重複する変数があります。たとえば、次のようなクエリがあるとします。
'T3:F6 > 0 となるように T1:F1 を選択'
テーブルは次のように設定されています。
表 1 (T1): F1、F2
表 2 (T2): F2、F3、F4
表 3 (T3): F4、F5、F6
ここで、F1 から F6 のエントリに割り当てられた値があります。したがって、表 1 には F1 があり、F2 はその兄弟です。F2 も表 2 にあり、F4 もその兄弟です。F4 も表 3 にあり、F6 はその兄弟です。
テーブルをトラバースする正しい方法は次のとおりです: T1:F1 -> T1:F2 -> T2:F2 -> T2:F4 -> T3:F4 -> T3:F6
これを行うためのアルゴリズムはありますか?各テーブルの兄弟を単純に検索するのは難しすぎるようです。ある種のツリー検索アルゴリズムのようですが、ツリーの設定方法がわかりません。