我有一个没有任何外键的数据库。我做了一些检查,并且有一些公平的孤立记录。
它是一个相当大的数据库500 +表,我正在寻找建立外键的可能性。
除了随着时间的推移每一张桌子都在拖网?
以前有没有人经历过这个过程,可能会提供一些有关如何使这个过程变得更容易的见解或提示。
任何帮助建议表示赞赏。
答案 0 :(得分:2)
我认为你的意思是“没有任何外键约束”......如果没有外键,你根本不知道哪些记录匹配。
主键和外键字段是否具有相同的名称?如在,PK表有一个“CustomerId”字段,FK表还有一个“CustomerId”字段?如果是这样,您可能能够查询列属性(可能使用INFORMATION_SCHEMA,您没有提及RDBMS)来找出一些隐含的关系。只查询具有名为“CustomerId”字段的所有表,这些表不是PK,并且这些表应该对Customer表具有FK约束是一个很好的(但不是确定的)。您甚至可以使用查询的输出来生成DDL以创建约束。
答案 1 :(得分:0)
您可以从最大到最小的表工作,也可以从数据库中性能最差的区域开始。添加密钥应该会显着提高性能,但您必须先解决孤立行。您可能需要来自业务的输入。期待他们对正在发生的事情感到非常困惑。