2017-03-17 5 views
0

Die meisten Beispiele verwenden nur Realm.getDefaultConfiguration() für alle ihre Speicher und Zugriff. Ich frage mich, ob es irgendwelche Nachteile (oder sogar Vorteile) für die Verwendung verschiedener Realm-Dateien für jede Klasse gibt? Ich weiß, dass ich das nicht muss, aber die Struktur meiner Bibliothek (keine gute Möglichkeit, zu überprüfen, ob Realm initialisiert wurde) veranlasst mich, eine separate Realm-Datei (oder Konfiguration) an verschiedenen Orten zu haben.Nachteile für mehrere Realm-Dateien/Datenbanken?

Es scheint, als ob es Vorteile haben könnte, auch andere Schemata und Migrationen zu spezifizieren. Ich weiß ich kann dies tun, aber gibt es einen Grund nicht zu?

+0

gut nur daran denken, sie sind völlig getrennt – EpicPandaForce

+0

Nun ... natürlich. Ich brauche keine Daten von Konfiguration A in Konfiguration B. –

Antwort

2

Die Verwendung verschiedener Realms hilft bei der Trennung von Sicherheitsfragen. Dies wird bei der Verwendung der Realm Mobile Platform mit dem Back-End-Realm-Objekt-Server relevanter, da Realms zwischen verschiedenen Benutzern und mit unterschiedlichen Berechtigungen geteilt werden können. Beispielsweise können Sie in einer Shopping-App einen Katalogbereich haben, der schreibgeschützt ist, einen Bereich für den Einkaufswagen des Benutzers, der privat ist, aber zwischen Geräten geteilt wird, und einen Einkaufslistenbereich, der für Familienmitglieder freigegeben werden kann.

Wenn Sie nur die Realm Mobile Datenbank verwenden, können Sie immer noch separate Bereiche für die Sicherheit verwenden. Zum Beispiel die Verwendung eines speicherinternen oder verschlüsselten Bereichs für sensible Daten und eines separaten Bereichs für weniger wichtige Daten.

+0

Bis jetzt ist die einzige Collaboration-Implementierung, die ich gesehen habe, wenn jemand einen Realm mit den gleichen Anmeldeinformationen verwendet. Es gibt keine App, die zeigt, wie jemand in einem freigegebenen Realm zusammenarbeiten kann, da jeder Benutzer auf einem Object Server Anmeldeinformationen für sein eigenes Realm erwirbt. Bisher konnte ich in den Dokumenten keinen Weg finden, zB nach anderen Benutzern oder irgendetwas anderem zu suchen, das außerhalb des Realms lebt, für das ich mich authentifiziert habe – TheoK

1

Sie können für jede andere Klasse einen anderen Bereich erstellen. Das ist meistens eine Designentscheidung am eigenen Ende, wenn Sie das für angebracht halten.

Wenn es um Realm Mobile Platform geht, beginnt jede Realm-Instanz mit der Synchronisierung, sobald Sie versuchen, darauf zuzugreifen. Die App wird versuchen, den gesamten Bereich herunterzuladen und zu synchronisieren. Möglicherweise möchten Sie nicht die gesamte App-Sammlung einer Klasse herunterladen. Nur weil es von derselben Klasse ist, bedeutet es nicht, dass es für diesen Benutzer passend ist, mit der Synchronisierung zu beginnen.

Beispielsweise verfügen Sie möglicherweise über ein Projektmanagementtool, das mehrere Boards mit mehreren Aufgaben enthält. Jedes Board kann ein Realm sein, mit einem . Wenn Sie versuchen, auf einen Realm zuzugreifen, ist es besser, nur diese Teilmenge von Tasks zu synchronisieren, anstatt die gesamten Aufgaben der gesamten Domain zu übernehmen, und dann einen Filter dafür zu erstellen.

Ich würde versuchen, verschiedene Bereiche als vielfache Datenbanken von jedem mit ihrer eigenen Idee, eigenen Benutzer-Besitz oder Bedenken zu unterteilen, anstatt zu sagen, dass Sie einen Bereich pro Klassenart haben sollten.