2014-02-20 99 views
1

首先感謝您對此問題的意見。我在領域驅動設計方面相當新穎,並且爲解決某些問題敲響了腦袋(我認爲它們非常基本,我肯定錯過了一些東西)。設計領域模型問題

讓我先說一下我的域名。我試圖模擬一個典型的學校,它可以有教室,每個教室可以在每個教室組內有多個部門/小組和學生。 用戶主要是學校管理員和老師。學校管理員可以創建教室,教師和學生,而教師只能創建組並將學生分配到一個組。 學校有全球認同,但教室沒有。當課堂是學校實體的一部分時,課堂具有本地身份。課堂小組只有在教室內纔是唯一的。

學校絕對是一個帶有課堂聚合的聚合根,負責創建,刪除,更新教室。

  1. 我們是否應該爲課堂和課堂組創建不同的聚合根(我認爲不正確,因爲它們在域內沒有全局身份)。
  2. 我們是否爲每個人創建單獨的存儲庫?
  3. 我們是否應該在服務層面上處理教室,教室組的創建/更新?
  4. 我們需要緩存數據,並且事件採購似乎是保持狀態同步的好主意。你有沒有看到這個問題?

任何幫助將不勝感激。

回答

0
  1. 我認爲你應該創建一個課堂聚合根。你可能會在一些報告中列出教室,是嗎?
  2. 僅適用於聚合根。父級聚合根存儲庫獲取根的孩子。
  3. 不可以。如果您使用實體框架,則足以讓您在Class對象列表中添加一個Classroom組。 EF應該照顧其餘的人。儘管謹慎刪除!
  4. 如果你正在談論http://martinfowler.com/eaaDev/EventSourcing.html,是不是隻是一種跟蹤變化的方法?
+0

感謝您的回覆。你認爲我應該爲課堂組創建聚合根嗎?我沒有使用EF,因此如果我有不同的存儲庫可能會有所幫助。我認爲事件採購是一個我可以實際處理所有更改以正確反映緩存對象的地方。如果你能對此有所瞭解,那會很好。 – Tariqulazam

+0

嗨,對於延遲抱歉。教室組在課堂範圍之外有什麼意義嗎? –