是否有与 SQL Server 一起使用以从分层数据模型生成树状图的工具?
我正在处理一个大的地理层次结构,并希望将其可视化。
这是一个例子。
我有一个 NodeHierarchy 表,它存储节点之间的层次关系。表中的每一行代表一个节点。除了一个节点之外,每个节点都有一个父节点。如果层次结构,则没有父节点的节点是根节点。
这是我创建表的方式:
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
);
我有一个苏格兰城市和场地的示例层次结构。苏格兰是等级制度的根源。苏格兰的后裔是城市和场所。在这个层次结构中,父母“包含”一个孩子,所以我们说,例如“巴罗兰兹在格拉斯哥,格拉斯哥在苏格兰”。
此语句使用示例数据填充 NodeHierachy 表:
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');
输出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)
在Freemind中,我画了这个等价图:
什么工具可以用最少的手动操作为我做到这一点?
编辑:最初我说我想可视化层次结构的“全部或部分”。此处发布的解决方案无条件地可视化整个层次结构。这对于较小的示例层次结构很好,但对于较大的示例层次结构,仅可视化其中的一部分可能更有用。
因为我没有具体说明“部分”的含义,所以我已将其从问题中删除。我在另一个问题中询问了部分可视化。