2013-10-02 137 views
1

我們有一個基於SOA的應用程序,應用程序之間的依賴關係很少。 例如,我們在其他應用程序使用的主設備中有城市代碼。SOA應用程序依賴關係

在從屬應用程序中,是否最好有城市代碼或城市記錄的主鍵ID。我覺得城市代碼使得更多的商業數據發送,而不是id(這是更耦合)。

回答

2

主鍵感覺像是服務和數據庫專用的實現細節。我不會將這些細節暴露給服務的客戶。

但它聽起來像你的城市代碼是一個獨特的領域,是至少候選人的關鍵。爲什麼不使用作爲這種情況下的主鍵?

如果城市代碼中的業務邏輯可能發生變化,則代理鍵可能有意義。但如果情況並非如此,那麼也許你可以考慮它。

+0

正確。說得通。謝謝。 – lives

+0

同意這個問題。此外,您可能需要了解服務之間是否存在緊密耦合,以及是否有可能編寫服務,以便數據不會被不直接需要的服務使用。 – KumarM

1

我會使用一個代碼(例如'DUB')並將其用作我的系統中的共享合同,但是無論如何,沒有任何一個服務擁有該代碼?這樣你解耦的依賴關係,並有一個更具可讀性,基於約定的密鑰...

0

我會使用域值映射(DVM)用於此目的。 域值映射對在運行時通過基礎架構的實際數據值進行操作。它們使您能夠從給定域中使用的一個詞彙表映射到不同域中使用的另一個詞彙表