我們舉一個例子,我們有兩個實體:ServiceProvider
和TelephoneNumber
。該系統允許服務提供商添加電話號碼。由服務提供商添加的每個電話號碼由TelephoneNumber
的實例表示。所以,我有這兩個實體之間的關聯。目前,我已經決定一個TelephoneNumber
實例與一個服務提供者關聯。我還決定這兩個實體屬於相同的集合,其中ServiceProvider
是聚合根(一個參數是TelephoneNumber
生命週期取決於ServiceProvider
實體)。遍歷方向和性能
我的問題是關於協會的遍歷方向。我事先知道服務提供商可能會添加數百萬個電話號碼。
如果關聯的遍歷方向是從ServiceProvider
到TelephoneNumber
,如何以有效的方式實現?在ServiceProvider
實體中存儲一組電話號碼效率不高(特別是對於內存)。可以使用延遲加載,但它會通過使用支持它的框架(例如Hibernate)來限制實現選項。
在一個已知的例子中,我們有Customer
和Order
實體,通常會選擇從Order
到Customer
的單向關聯。如果關聯的遍歷方向是從TelephoneNumber
到ServiceProvider
,那麼如何執行TelephoneNumber
的CRUD操作?我想我們需要使用TelephoneNumberRepository
?但是,我經常看到應該僅爲聚合根定義存儲庫,因爲我們通常會獲得聚合根實例,並且我們通過它與域模型進行通信。
感謝
您使用的是關係數據庫嗎? – 2012-04-03 09:53:26
@PreetKukreti是的,我們將在第一階段使用關係數據庫。 – 2012-04-03 11:31:24
添加完後,您將如何訪問電話號碼?你會大量加載它們,只是其中一些符合特定標準...?你確定沒有什麼比電話號碼更多的電話號碼嗎?周圍沒有其他物體? – guillaume31 2012-04-04 15:33:15