2013-06-30 47 views
0

我有一個具有多個系統的傳統IT環境,每個系統都有其自己的數據庫,它引用了有關我們客戶的相同數據。即銷售系統,會計系統和操作系統,所有這些系統都有關於相同客戶,賬戶和產品的數據。集成2nf和3nf數據庫

在某些情況下,這些數據存儲在2nf中,有些情況下存儲在3nf中。是否有最佳實踐或已知算法來整合這兩者?

E.g.有沒有辦法在3nf銷售系統中對客戶進行更改,然後在2nf操作系統中可靠地更新關於客戶的相同信息?

感謝,

EAN

回答

0

有沒有一種方法,使在3NF銷售系統的變化給客戶,然後可靠更新有關在2NF業務系統客戶相同的信息?

不是沒有很多的努力工作。

在一般情況下,進行這項工作的唯一方法是將匹配鍵存儲在表中,並使用這些匹配鍵傳播更改。還有很多事情可能會阻止這些工作。

  • 列寬不兼容。
  • 不兼容的權限。
  • 不兼容的約束。
  • 缺少數據。
  • 重複的數據。

匹配鍵可能涉及大量的實踐工作。例如,假設「客戶」有五行,客戶名稱爲「David Small」,操作系統有三行。有多少「大衛小號」在那裏?他們如何匹配?你不能單獨說出名字。您必須深入瞭解其他數據 - 地址,購買歷史記錄等。無法提前告知您需要多少數據以及您何時完成數據仍然可能無法分辨哪個匹配哪個。自動化很難。

+0

感謝您的支持。 假設數據已經清理完畢並且在所有系統中都被準確複製,那麼存儲匹配密鑰的方法將如何工作? 你是否建議我可以添加一個關鍵列到2nf表,只要3nf表有fk? 因此,如果客戶2NF系統有一個表「客戶」是這樣的: ** FNAME,LNAME,地址,公司** 我想一個新的領域companyid添加到客戶,所以它看起來是這樣的: ** fname,lname,address,company,companyid ** 對不對? 謝謝, Ean – ean

+0

不,你不應該改變現有的表。而是創建一個新表,其中包含2NF表中的主鍵列和3NF表的主鍵列。您需要仔細觀察具有傳遞依賴關係的表 - 使用關鍵映射表可能不足以保證一致的更新。 –