2017-03-17 53 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。如果您尝试访问一个领域,最好是同步该任务的子集而不是整个域的任务集,然后尝试对其执行过滤。

我会尝试将不同领域划分为多个数据库,每个数据库都有自己的想法,拥有用户所有权或关注点,而不是说每个类的类型都应该有一个领域。