2011-07-06 32 views
1

假设我们有一个名为Connected的表,其中有整数类型的列node_1node_2,以及其中的一些数据。MySQL存储过程设计问题V2。 Recusion还是Hierarchy?

它看起来像这样:

`node_1` `node_2` 
    A  B 
    C  D 
    B  C 
    B  F 
    C  W 
    D  N 
    D  Q 

     . 
     . 
     . Much much much more 
     . 

什么即时试图做的是扩大该表,然后收集所有关系。例如,如果我们可以从'A'到'Q'的路径'ABCDQ'(由旧表'AB,BC,CD,D-Q'定义),我们说'A'和'Q'可以连接,并将这一对插入到新表中。

这样,结果表应该是这样的:

`node_1` `node_2` 
    A  B 
    A  C 
    A  D 
    A  F 
    A  N 
    A  Q 
    A  W 
    B  C 
    B  D 
    B  F 
    B  N 
    B  Q  
    B  W 
    C  D 
    C  N 
    C  Q 
    C  W 
    D  Q 
    D  N      

我感谢所有帮助!

更改单词“节点”,以“集团”, “连接”到“含有”,不是 听起来更合理?对不起我 伽马或任何其他语言相关的 problemssss :)

+0

如果你有相当数量的节点,并且它们之间不止有几跳(平均),你最终会得到一个巨大的桌子。大量连接的最坏情况(我猜)是'n!'记录。 –

回答