2017-03-05 41 views
3

讓我們想象一下一個典型的應用阿卡與像演員的結構樹,即小(2-3)的頂級演員這在層次結構的底部管理潛在的成千上萬的小演員的數量。看起來有兩種方法來持久化:應該製作哪些演員持久?

  1. 只讓頂級行爲者持久化。兒童演員靠父母的任何狀態恢復等
  2. 使所有的兒童演員的執着。我們最終可能會有數千個持久性id,每個actor都可以恢復它自己的狀態。這些方法之間進行選擇時

考慮哪些因素有哪些?是否有典型的用例與一個適合,但不適用於另一個?

的問題應該是抽象的,但這裏有一個例子。假設我們爲應用程序的每個用戶都有一個演員,並且這些演員共享相同的父演員。如果我們想要堅持每個用戶的電子郵件地址及其更新,我們可以讓每個用戶的演員持久化,或者我們可以讓頂級演員持久化。

回答

2

在這種情況下,我可能會用第二種方法去。只有在「選擇」時纔會爲用戶演員恢復事件。使這種方法更加方便的是,用戶行爲者的行爲可以根據其狀態而改變。例如。如果用戶註冊,那麼您肯定不希望多次持續存在相同的「註冊」事件。或者,如果用戶停用其帳戶,您當然不希望讓他更新他的電子郵件等。另外,所有更改都將保存爲一系列事件。所以沒有數據丟失。

在另一方面,如果使用第一種方法,你就必須重新創建所有的小演員在父母的演員復甦以確定其狀態,使用戶能夠避免前面提到的意想不到的結果。

相關問題