2016-08-02 4 views
0

ich nach den Nested Sets wie hier dargestellt: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/Wie visualisiere ich ein MySQL Nested Set?

ich hierarchische Daten habe, effektiv, eine Reihe von verschiedenen Graphen mit Kanten/Knoten, und es sichtbar zu machen suchen. Ich verstehe das Konzept der geschachtelten Menge, bin mir aber nicht sicher, woher ich die Eltern/Kind-Beziehungen jedes Knotens kenne, ohne eine übermäßige Menge an Abfragen (Performance) auszuführen.

Ich versuche etwas wie http://visjs.org/examples/network/basicUsage.html von visjs zu verwenden, um das Diagramm zu erstellen.

Aber visjs will die Datensätze in den folgenden Formaten:

<script type="text/javascript"> 
    // create an array with nodes 
    var nodes = new vis.DataSet([ 
    {id: 1, label: 'Node 1'}, 
    {id: 2, label: 'Node 2'}, 
    {id: 3, label: 'Node 3'}, 
    {id: 4, label: 'Node 4'}, 
    {id: 5, label: 'Node 5'} 
    ]); 

    // create an array with edges 
    var edges = new vis.DataSet([ 
    {from: 1, to: 3}, 
    {from: 1, to: 2}, 
    {from: 2, to: 4}, 
    {from: 2, to: 5} 
    ]); 

    // create a network 
    var container = document.getElementById('mynetwork'); 
    var data = { 
    nodes: nodes, 
    edges: edges 
    }; 
    var options = {}; 
    var network = new vis.Network(container, data, options); 
</script> 

Gibt es eine Weise, die ich eine einzelne Abfrage oder eine effiziente Funktion ausführen kann, die die Daten zurückgibt, so dass ich weiß:

Knoten 1 (LFT 1, RGT 8) childs Knoten 2 (2,3) und Knoten 3 (4,7)

Knoten 3 hat Kindknoten 4 (5,6)

Node 1 
     /\ 
Node 2 Node 3 
      | 
     Node 4 

Ich kann den vollständigen Baum bekommen, oder ich kann die eingerückte Sache machen,

Basierend auf dem visjs Beispiel bin ich unsicher, wie man jeden Knoten und seine Kanten effizient kennt.

Jeder Rat würde sehr geschätzt werden. Vielen Dank!

Antwort

0

Es hängt davon ab, was Sie mit "visualisieren" meinen.

In jeder Programmiersprache, die Sie wählen, kann ein gerichteter Graph als eine Gruppe von Knotenpaaren dargestellt werden, die jeweils einen Eltern- und einen Kindknoten darstellen. Knoten ohne Eltern sind Quellen, während Knoten ohne Kinder Senken sind. Es gibt zig bekannte und weitverbreitete Algorithmen, um einen Cutset eines Baumes zu begehen und alle möglichen Wege, Schaltungen usw. zu bewerten.