sql-server – 什么工具从SQL Server分层数据生成图表?
有没有一个可以与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 ); 我有一个苏格兰城市和地点的例子.苏格兰是层次的根源.苏格兰的后裔是城市和场地.在这个喜事,父母“包含”一个孩子,所以我们说,例如“Barrowlands在格拉斯哥,格拉斯哥在苏格兰”. 此语句使用示例数据填充NodeHierachy表: INSERT INTO NodeHierarchy(PK_NodeID,FK_ParentNodeID,Name) VALUES (1,NULL,N'Scotland'),(2,1,N'Glasgow'),(3,N'Edinburgh'),(4,N'St Andrews'),(5,2,N'The Barrowlands'),(6,N'The Cathouse'),(7,N'Carling Academy'),(8,N'SECC'),(9,N'King Tut''s Wah-Wah Hut'),(10,3,N'Henry''s Cellar Bar'),(11,N'The Bongo Club'),(12,N'Sneaky Pete''s'),(13,N'The Picture House'),(14,N'Potterrow'),(15,4,N'Aikman''s'),(16,N'The Union'),(17,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我画了这个等效图: 什么工具可以为我做最少的手动工作? 编辑:原来我说我想要将层次结构的“全部或部分”可视化.这里发布的解决方案无条件地可视化整个层次结构.这对于小型示例层次结构是适用的,但对于较大的层次结构,仅可视化其中的一部分可能更有用. 因为我没有指定我的意思是“部分”,所以我把这个从这个问题中删除了.我在another question年询问了部分可视化. 解决方法导出并运行它通过 GraphViz – 您甚至不必生成层次结构(仅导出节点和边) – 只需分配节点名称,这些节点名称根据NodeID列是唯一的,并在边缘使用相同的节点名称.如果你想要交互式的东西,那么Microsoft有一个可以从.NET使用的Automatic Graph Layout library. 这是一个introduction to GraphViz. 您将要做的是通过使用以下脚本导出SQL来输出DOT文件:http://data.stackexchange.com/stackoverflow/q/109885/,它将通过GraphViz运行并生成图片. DOT语法相对简单 – 您可以手动编写它,然后从SQL生成,并将其简单地粘贴到一个文件或其他东西(如.NET或PowerShell)中,该文件读取SQL集并生成文件. 您可以使用SSIS进行自动化.我制作了一个包装,写出了DOT文件并运行graphviz,并每天保存我们系统的graphiacl快照. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |