2017-03-17 47 views
0

大多數示例只是使用Realm.getDefaultConfiguration()來存儲和訪問它們的所有內容。我想知道是否有任何缺點(或優點,甚至是)爲每個類使用不同的Realm文件?我知道我不需要,但是我的庫的結構(沒有好方法來檢查Realm是否已經初始化)使我想要在不同的地方有單獨的Realm文件(或配置)。下降到多個Realm文件/數據庫?

它似乎可以讓我指定不同的模式和遷移的優勢。我知道我可以這樣做,但有沒有什麼理由不?

+0

好吧,請記住它們是完全獨立的 – EpicPandaForce

+0

呃......當然。我不需要配置B中的配置A的數據。 –

回答

2

使用不同的領域有助於區分安全問題。將Realm Mobile Platform與後端Realm Object Server一起使用時,這會變得更加相關,因爲Realm可以在不同用戶之間共享並具有不同權限。例如,在購物應用程序中,您可能擁有隻讀的目錄領域,用戶購物車的領域是私有的,但在設備之間共享,以及可以在家庭成員之間共享的購物清單領域。

如果您只是使用Realm Mobile Database,您仍然可以使用單獨的領域來實現安全性。比如對敏感數據使用內存或加密領域,對不太關鍵的數據使用獨立領域。

+0

到目前爲止,我看到的唯一協作實現是有人使用具有相同憑證的Realm。沒有應用程序顯示某人可以在共享Realm上進行協作,因爲對象服務器上的每個用戶都獲得了他自己領域的憑證。到目前爲止,我無法在文檔中找到一種方式來搜索例如其他用戶或其他生活在我已驗證的領域之外的其他用戶 – TheoK

1

您可以爲每個不同的類構造不同的Realm。如果你覺得這是合適的,那麼這主要是一個設計決定。

當涉及到Realm Mobile Platform時,每個領域實例都會在嘗試訪問它時開始同步。該應用會嘗試下載整個領域並嘗試保持同步。你可能不想下載你的應用程序的一個類的整個集合。僅僅因爲它具有相同的類別,並不意味着該用戶開始同步它。

例如,您可能有一個項目管理工具,其中包含多個完成多個任務的板。每塊板都可以是一個領域,有一個class Task。如果您嘗試訪問一個領域,最好是同步該任務的子集而不是整個域的任務集,然後嘗試對其執行過濾。

我會嘗試將不同領域劃分爲多個數據庫,每個數據庫都有自己的想法,擁有用戶所有權或關注點,而不是說每個類的類型都應該有一個領域。