0

場景:與跨架構的關係數據庫多DataContexts

我負責做其具有運行在本地網絡設置的桌面應用程序,數據庫和後臺部件必須駐留在服務器上,而POS客戶端向服務器進行操作調用。

有與8種架構中,在一個模式中的表具有跨其他架構的表的關係數據庫的64個表。

架構

  1. 帳戶(會計科目表,交易,期刊,銀行/現金/存款憑證)
  2. 人力資源(部門&員工)
  3. 採購(PO,PO詳細信息,採購退貨&詳細信息)
  4. 銷售(銷售,銷售詳細信息,銷售退貨&詳細信息,客戶)
  5. Stock(Produc T,庫存,歷史對成本變化,價格,庫存 轉讓)
  6. 稅(稅收組,WHT稅,消費稅等)
  7. 安全(用戶,權限和會話的記錄)
  8. 店(商店檔案,碼頭,科,機櫃,機架,BIN)

注: 有顧慮,在使用一個DataContext的爲具有對網絡運行這樣一個大的數據庫,通過該模式,導航將惡化應用程序的性能。因此,我們應該打破數據上下文;對於其中一個直觀的策略是通過服務層中的數據庫,並交換數據/來回其他歷境的各個模式中創建一個DataContext的(在這種情況下8)。我的設計基於DDD。

問: 你認爲應該打破在DataContext爲給定的情景相應的策略?我想了解關於這個問題的有經驗的見解。

PS。我使用實體框架5.0在.NET Framework 4.0中所需的客戶端。

+1

我不認爲性能會成爲問題,但由於體系結構和維護原因,我會分解上下文。按照您的建議,每個設計部分的上下文似乎都是適合我的方法。 – Patrick

回答

0

您的域名/業務知識也只是在定義數據上下文的分解一樣重要。在DDD,您可以使用單一職責原則的子域(業務能力)分離成獨立的限界上下文。這是很好的POC,但我希望在您需要考慮遺留系統(電流PROD系統)作爲另一限界上下文生產。只是一個想法。

+0

當前的系統將被替換爲我們正在開發的系統。 – sefxn