具有相同結構的操作數據庫可在多個國家/地區使用。生成跨多個數據庫唯一的主鍵
country A has table Users with column user_id
country B has table Users with column user_id
country C has table Users with column user_id
當從所有三個數據庫中的數據被帶至暫存區用於進一步數據倉庫目的的所有三個業務表被集成到具有dwh_user_id單個表的用戶。
邏輯看起來像下面:
if record comes from A then dwh_user_id = 1000000 + user_id
if record comes from B then dwh_user_id = 4000000 + user_id
if record comes from c then dwh_user_id = 8000000 + user_id
我有一個強烈的感覺,這是一個非常糟糕的做法。什麼是更好的方法? (user_id + country_iso_code也許?)
我會添加兩列:國家和一個新的唯一ID。 –
你在說什麼是Master Data Management。 'CountryCode + to_char(user_id)'是一種方法。雖然對使用字符串主鍵有多重意見。另一種方式是可以使用代理鍵作爲DWH_USER_ID並添加2列,一列用於國家代碼,另一列用於user_id。 – Utsav
任何固定長度的鍵都會有這種感覺,即分配的範圍不夠,記錄會溢出到下一個範圍。您可以決定數據庫中是否存在這種可能性,如果是這樣,您可以增加範圍直到感覺良好,或者使用帶有分隔符的可變長度鍵。 – GSerg