我正在尝试编写一种算法,该算法将帮助我找到通过多个表来获取查询数据的最佳路径。这些表具有相互关联的重叠变量。例如,我可能有这样的查询:
'选择 T1:F1 使得 T3:F6 > 0'
表是这样设置的:
表 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
有这样做的算法吗?似乎很难简单地搜索每个表的兄弟。似乎这将是某种树搜索算法,但我不知道如何设置树。