Esiste uno strumento che funzioni con SQL Server per generare diagrammi ad albero da un modello di dati gerarchico?Quale strumento genera diagrammi dai dati gerarchici di SQL Server?
Sto lavorando con una grande gerarchia geografica e vorrei visualizzarlo.
Ecco un esempio.
Ho una tabella NodeHierarchy che memorizza una relazione gerarchica tra i nodi. Ogni riga nella tabella rappresenta un nodo. Ogni nodo ma uno ha un nodo genitore. Il nodo che non ha genitore è la radice se la gerarchia.
Ecco come Creo il mio tavolo:
CREATE DATABASE HierarchyTest;
GO
USE HierarchyTest;
GO
CREATE TABLE NodeHierarchy (
PK_NodeID INT NOT NULL
CONSTRAINT PK_NodeHierarchy PRIMARY KEY,
FK_ParentNodeID INT NULL
CONSTRAINT FK_NodeHierarchy_NodeHierarchy FOREIGN KEY
REFERENCES NodeHierarchy(PK_NodeID),
Name NVARCHAR(255) NOT NULL
);
Ho un esempio gerarchia delle città scozzesi e locali. La Scozia è la radice della gerarchia. I discendenti della Scozia sono città e luoghi. In questa ricerca, un genitore "contiene" un bambino, quindi diciamo che ad es. "The Barrowlands è a Glasgow e Glasgow è in Scozia".
Questa affermazione popola la tabella NodeHierachy con i dati eample:
INSERT INTO NodeHierarchy(PK_NodeID, FK_ParentNodeID, Name)
VALUES
(1, NULL, N'Scotland'),
(2, 1, N'Glasgow'),
(3, 1, N'Edinburgh'),
(4, 1, N'St Andrews'),
(5, 2, N'The Barrowlands'),
(6, 2, N'The Cathouse'),
(7, 2, N'Carling Academy'),
(8, 2, N'SECC'),
(9, 2, N'King Tut''s Wah-Wah Hut'),
(10, 3, N'Henry''s Cellar Bar'),
(11, 3, N'The Bongo Club'),
(12, 3, N'Sneaky Pete''s'),
(13, 3, N'The Picture House'),
(14, 3, N'Potterrow'),
(15, 4, N'Aikman''s'),
(16, 4, N'The Union'),
(17, 4, N'Castle Sands');
uscita di SELECT * FROM NodeHierarchy;
:
PK_NodeID FK_ParentNodeID Name
----------- --------------- ---------------------------------
1 NULL Scotland
2 1 Glasgow
3 1 Edinburgh
4 1 St Andrews
5 2 The Barrowlands
6 2 The Cathouse
7 2 Carling Academy
8 2 SECC
9 2 King Tut's Wah-Wah Hut
10 3 Henry's Cellar Bar
11 3 The Bongo Club
12 3 Sneaky Pete's
13 3 The Picture House
14 3 Potterrow
15 4 Aikman's
16 4 The Union
17 4 Castle Sands
(17 row(s) affected)
In Freemind ho disegnato questo diagramma equivalente:
Quale strumento può fare questo per me con un minimo di sforzo manuale?
EDIT: Originariamente ho detto che avrei voluto di visualizzare "tutto o in parte" della gerarchia. La soluzione pubblicata qui visualizza l'intera gerarchia incondizionatamente. Questo va bene per la piccola gerarchia di esempi, ma per uno più grande, può essere più utile visualizzarne solo una parte.
Perché non ho specificato cosa intendevo per "parte", l'ho rimosso dalla domanda. Ho chiesto informazioni sulla visualizzazione parziale in another question.
+1 Questa è una bella domanda. Mi piacerebbe anche conoscere la risposta. –
+1 Mi piace molto che tu abbia incluso 'CREATE DATABASE' e' INSERT' per poter tagliare e incollare! –
Grazie, Kirk. È nello spirito dell '"esempio breve, autonomo, corretto, compilabile": http://sscce.org/. –