Database 将外键构建到旧数据库的提示

Database 将外键构建到旧数据库的提示,database,foreign-keys,legacy,Database,Foreign Keys,Legacy,我有一个没有外键的数据库。我做了一些检查,有相当多的孤儿记录 这是一个相当大的数据库,有500多个表,我正在考虑重新构建外键的可能性 除了在每一张桌子上拖网 以前是否有人经历过这个过程,也许可以提供一些见解或技巧,让这个过程变得更容易一些 欢迎提供任何帮助建议。您可以从最大的表到最小的表,或者从数据库中性能最低的区域开始。添加键应该会显著提高性能,但首先必须解决孤立行。为此,您可能需要企业的投入。预计他们会对发生的事情感到非常困惑。我想你的意思是“没有任何外键约束”…如果没有外键,你根本不知道哪

我有一个没有外键的数据库。我做了一些检查,有相当多的孤儿记录

这是一个相当大的数据库,有500多个表,我正在考虑重新构建外键的可能性

除了在每一张桌子上拖网

以前是否有人经历过这个过程,也许可以提供一些见解或技巧,让这个过程变得更容易一些


欢迎提供任何帮助建议。

您可以从最大的表到最小的表,或者从数据库中性能最低的区域开始。添加键应该会显著提高性能,但首先必须解决孤立行。为此,您可能需要企业的投入。预计他们会对发生的事情感到非常困惑。

我想你的意思是“没有任何外键约束”…如果没有外键,你根本不知道哪些记录匹配


主键字段和外键字段是否具有相同的名称?与中一样,PK表有一个“CustomerId”字段,FK表也有一个“CustomerId”字段?如果是这样的话,您可能能够查询列属性(可能使用INFORMATION_SCHEMA,您没有提到RDBMS)来找出一些隐含的关系。只需查询所有具有名为“CustomerId”的字段(该字段不是PK)的表,就可以确信(但不确定)这些表应该对Customer表具有FK约束。您甚至可以使用查询的输出生成DDL来创建约束。

在大多数情况下,键确实匹配,这不是个坏主意。是的,我的意思是“限制”