2014-11-06 51 views
0

我正在基於DDD的應用程序體系結構中工作。我有以下情況。DDD - 具有大圖的集合

我從另一個系統的BizTalk發票導入。這提供了餘像下面的圖的應用程序內部反射的結構:

  • 訂單 - > InvoiceHeader - > InvoiceHeaderDetails - > InvoiceDetails

Throught一個重背景結算過程的曲線圖生長,並創建一個結構類似以下(現在是最後的模型):

  • BillingDoc - >結算產品 - >訂單(按結算項目) - > InvoiceHeader - > InvoiceHeaderDetail - > InvoiceDetails

最後,我需要在網格中使用這些BillingDocs,並實現BillingDoc是否具有InvoiceHeader以及從外部系統導入的詳細信息,方法是迭代大量的billingdocs及其圖表,這使我擔心。

如何在不影響性能的情況下將這些操作作爲我的領域模型的一部分,因爲我將迭代每一個單獨的文檔和大圖。

我所做的是在創建具有該InvoiceHeader的文檔時標記聚集根。所以當我需要迭代時,我避免通過大圖來挖掘。

對於如何改進流程並保持我的域名正確,您有任何建議嗎?你對我的解決方案有什麼看法?它違反了ddd?

非常感謝。

+0

您是否只從訂單中讀取數據? – JefClaes 2014-11-07 11:50:47

+0

嗨Jef,是的,一旦我執行開票憑證之間的關係,我需要在網格中列出所有開票憑證,並顯示一個圖標,顯示有關導入訂單的信息。但是在網格中顯示圖標之前,我需要知道每個文檔都包含導入的發票。所以這聽起來像是一個性能問題。我正在尋找如何做得更好。謝謝 !! – 2014-11-07 14:25:55

回答

0

我認爲你需要清楚地區分你的presentationObjects和Domain Objects,如果你真的遵循DDD。如果您正在考慮將域對象暴露給用戶界面,那麼我認爲,這樣的問題會出現,並且從性能等方面來說非常困難。