Ich habe gerade Realm entdeckt. Ich denke an ein Architekturdesign, wo es eine iOS-App, eine Mac-App und ein Backend gibt. Die iOS App verfügt über einen Realm (Realm Mobile Platform), der im Backend mit einem Realm verbunden ist. Die iOS App hat einen anderen Realm (Realm Mobile Database). Das Backend verfügt über eine Datenbank zum Speichern von Dateien.Können wir 2 Realms haben?
Hier ist, was ich denke.
Die iOS-App ruft JSON von einer Drittanbieter-API ab, analysiert sie und vergleicht sie mit den Objekten im Realm (dem mit dem Backend verbundenen). Das Material, das nicht im Realm enthalten ist, wird an die Mac-App gesendet, die die entsprechenden Dateien von einer externen Quelle herunterlädt und dann diese Dateien in die Datenbank hochlädt. Die Mac App alarmiert dann die iOS App, die diese Dinge dann in das Realm (das mit dem Backend verbundene) legt. Dies ist der 'update the backend'-Prozess.
Jetzt vergleicht die iOS-App beide Realms miteinander und erhält die Sachen, die nicht im lokalen Realm sind. Anschließend werden die Dateien mithilfe der Verknüpfungen in diesen Bereichsobjekten aus der Datenbank heruntergeladen. Sobald sie heruntergeladen sind, fügt sie diese Objekte zu ihrem lokalen Realm-Speicher hinzu. Dies ist der Vorgang "Gerät mit dem Backend synchronisieren".
Beide Realms würden die gleiche Art von Objekt speichern.
Extra:
Idealerweise funktioniert das Gerät nicht mit der Datenbank in perfekter Synchronisation sein, und so werden die meisten haben wahrscheinlich einige Teilmenge des Back-End-Realm und die Datenbankdateien.
Ist diese Kombination einer Realm-Plattform und einer Realm-Datenbank möglich?
Gibt es einen Grund, dass Sie nicht nur denselben Bereich zwischen den iOS-Apps, der Mac-App und dem Backend teilen? – ast
Hey @ast, yep, um ein Delta zu halten, damit es wissen kann, was es nicht hat, damit es weiß, welche Dinge heruntergeladen werden sollen. –
Wäre es eine gute Idee, den Objekten eine Eigenschaft hinzuzufügen, um zu verfolgen, ob die Dateien heruntergeladen wurden, und Realm dann die Synchronisierung zu überlassen? Sollte den Overhead sehr reduzieren. – ast