【发布时间】:2019-01-02 15:38:08
【问题描述】:
我使用的是 SQL Server 2011,需要创建一个可视化表示(图表)。当前结构表之间没有关系(外键),并且存在没有任何主键的表。
我曾尝试使用 SQL 数据库图表,但如果数据库本身没有发生变化,则无法在表之间添加任何关系。
我想在不做任何更改的情况下绘制关系。
我可以使用任何免费的 DB Diagram 软件来实现这一点吗?我尝试了 DbVisualizer,但遇到了与 SQL 中的图表相同的问题。
【问题讨论】:
-
您可以将其下载为图像并使用任何图像编辑器“绘制”表格之间的关系线。只是出于好奇,您有什么理由会拥有一个没有定义外键的数据库?
-
如果我能找到可以根据列名自动绘制关系的软件,那将很有帮助,因为我目前在数据库中有超过 500 个表。不知道为什么这个数据库是按照它的方式创建的(没有 FK)。目前的 DBA 一直在与垃圾数据作斗争。
-
如果您没有定义外键,您希望软件如何识别关系?通过猜测?通过掷骰子?这是一个很好的例子,说明为什么需要外部约束:不仅要保持数据的完整性,还要记录你的模型
-
您可以尝试创建一个脚本,该脚本会根据列名生成 ALTER TABLE ...,然后使用修改后的架构创建和清空数据库,并使用任何可用于修改 FK 的绘图工具
-
你可能应该同时攻击这两种方式。图表有助于理解关系应该如何(即使它没有反映在数据中)。但是您还需要清理数据并应用 FK。如果您有 500 个表,那么这是一项艰巨的工作,您需要以某种方式对其进行优先排序
标签: sql-server entity-relationship