2017-07-03 35 views
0

我目前正在某個忽略其基礎架構和數據庫的啓動中工作。 我們的用戶數據庫很混亂(Thx to WordPress),我目前正在將它遷移到PostgreSQL。問題是數據不一致。例如,有些用戶沒有郵寄地址,郵政地址格式隨時間變化,其他人的電子郵件地址不是他們的用戶名的電話號碼...如何正確遷移未規範化和不一致的用戶數據庫

我們找到了一些解決方案,例如郵政地址格式我們使用Google Maps API進行地理編碼。然而,很顯然,我們不能擁有一個與當前數據一致的數據庫。

所以問題是:我們是否使用另一個表格爲不一致的用戶,並將他們移動到「新」表時,他們將更新第一連接後,他們的帳戶,或使用一個表的所有用戶,並作出一些讓步......

回答

2

有兩件事情你需要考慮:

  1. 什麼類型的應用程序(S)的 - >軟件 - >系統是你的數據將被用於?如果您的應用程序要求您的數據標準化(換句話說,您的應用程序「要求」具有主鍵/外鍵關係的結構化數據),那麼您需要使用關係數據庫來表示數據。

  2. 如果數據並不需要「是結構化」 - 您可以使用NoSQL數據庫(如https://redis.io/),其通過鍵存儲數據 - >值(鏈接一鍵文件/數據結構) 。

如果需要使用關係數據庫或NoSQL數據庫:

我會清理你的數據,並具有穩定的聯繫信息。

我會讓用戶更新他們的聯繫信息(他們下一次登錄時),並將這個「乾淨的聯繫人數據存儲在不同的表中」,其布爾字段(可以是用戶聯繫人數據是一致的真/假)。

不要做「讓步」,否則最終會出現「永遠」不一致的數據,以及(業務邏輯)在代碼中被攻擊(人們會忘記) - 這將永遠不會讓您清理數據。