2014-11-03 98 views
0

我剛剛有一位同事向我介紹了來自第三方公司的SQL數據庫。SQL數據庫恢復後的外鍵問題

他們從第三方備份了數據庫,並在我們的辦公室恢復了它。

有一個問題,因爲看起來每個表的所有外鍵都是實際的表屬性,而不是實際的關係。

我以前沒見過這個,想知道是否有人知道它的原始數據源可能是什麼?或者在進行備份時是否存在損壞。

這些傢伙將不得不重新映射所有的關係,作爲一個非常大的模式,這是一個乏味的任務。

*** UPDATE ****

一個例子是這樣的: -

enter image description here

任何幫助,將不勝感激。

+0

爲什麼在SQL Server內置時使用第三方工具進行備份,使用SQL Server進行備份,然後恢復,並檢查所有外鍵。 – 2014-11-03 18:06:17

+0

你的意思是「表格屬性而不是實際關係」?像...「tableA.someId = tableB.someId」的隱含關係而沒有實際定義外鍵? – Kritner 2014-11-03 18:20:27

+0

@mr_eclair不使用第三方工具的地方,它是由第三方擁有的sql數據庫。 – Derek 2014-11-03 19:44:13

回答

1

那麼,只是因爲列名以FK開頭並不會使它成爲外鍵。 您確定原始數據庫中存在外鍵約束嗎?

也許他們從未實現約束。當您打開表格時,它們應該在鍵部分下方可見。見下面

enter image description here

圖像取決於你想要達到的目標,有可能是沒有必要重新實現的約束。例如。一些相對較小的只讀查詢也可以工作。只要你開始更新,我寧願有限制。

+1

我猜想第三方開發團隊是無能的,並且傾向於通過gui來做所有事情,而不是關心數據完整性,因爲FK的某些誤導性的愚蠢行爲導致放慢速度。當然,我從來沒有見過一個設計良好的數據庫,它是第三方產品的一部分。 – HLGEM 2014-11-03 20:11:51

+0

@HLGEM我從來沒有見過這樣的事情。 – Derek 2014-11-04 08:33:06