2010-09-17 39 views
1

我有一個沒有任何外鍵的數據庫。我已經做了一些檢查,並且有一些孤兒記錄很少。將外鍵構建到遺留數據庫的技巧

它是一個相當大的數據庫,500個+表,我期待在建立外鍵回的可能性。

除了隨着時間的推移,雖然每一個表拖網?

以前有沒有人經歷過這個過程,也許可以提供一些見解或提示,如何使過程變得更容易。

任何幫助建議表示讚賞。

回答

1

我假設你的意思是「沒有任何外鍵限制」......如果沒有外鍵,你根本不知道哪些記錄匹配。

主鍵和外鍵字段的名稱是否相同?如在PK表中有一個「CustomerId」字段和FK表也有一個「CustomerId」字段?如果是這樣,您可以查詢列屬性(可能使用INFORMATION_SCHEMA,您沒有提到RDBMS)來找出某些隱含的關係。只要查詢所有具有名爲「CustomerId」的字段的表不是PK,並且有一個很好的(但不是確定的)賭注,那些表應該對Customer表具有FK約束。你甚至可以使用查詢的輸出來生成DDL來創建約束。

+0

這在多數情況下密鑰確實匹配並不是一個壞主意。是的,我的意思是「約束」 – 2010-09-17 16:19:30

0

您可以從最大到最小的表格工作,也可以從數據庫的最低性能區域開始。添加密鑰應該會顯着提高你的性能,但你必須先解決孤行問題。您可能需要業務方面的意見。期待他們對發生的事情感到困惑。