2012-07-14 13 views
8

Ich arbeite an der Aktualisierung der Datenbank auf einem mobilen Gerät, das SQLITE db verwendet, die als Server-Updates aktualisiert werden soll, es ist Datenbank, d.
Kann mir jemand irgendwelche Ideen vorschlagen, wie man das erreicht.
Ich möchte nicht die gesamte Server-Datenbank lesen, da dies die Datennutzung beim Lesen der gesamten Datenbank nur für ein einzelnes Update oder für mehrere Updates erhöhen würde. Das Update erfolgt in der Produkttabelle und nur das Preisfeld wird serverseitig aktualisiert.Update sqlite Datenbank, wenn Server-Datenbank aktualisiert werden

+0

Zum Synchronisieren von Daten zwischen Client und Server RESTful API ist eine gängige Methode, um dies zu erreichen. Sie können Ihre Aktualisierungen für einen anderen Benutzer zwischenspeichern, der dasselbe Update anfordert. Wie auch immer, was ist los mit der Datenbank zu lesen? – biegleux

+0

Lesen der Datenbank wird Datennutzung erstellen, wenn ich in der Lage bin, einen Wert eines einzelnen Feldes zu lesen, wird es viel weniger Datenverwendung verwenden – Sumit

+0

Ich denke an eine separate Tabelle erstellen, die die Update-Details beibehalten und Benutzer nur diese lesen wird Details zur Aktualisierung seiner Datenbank .. Was denken Sie, ist dies eine gute Praxis? – Sumit

Antwort

6

Sie können in Ihrer App einen Dienst definieren, der regelmäßig fragt, ob in Ihrer Server-Datenbank aktualisierte Daten vorhanden sind. Auf der Serverseite können Sie einen Web-Service implementieren, der ein JSON-Objekt erhält, in dem Sie das aktuelle Datum, den Tabellennamen, den Sie nach Updates suchen möchten, und andere Informationen basierend auf Ihren Zwecken einfügen. Ich erkläre mich besser mit einem Beispiel: 1) Wenn die App startet, wird auch ein Hintergrunddienst gestartet. Dieser Service fragt (zB alle 3 Minuten) Ihren Webservice ab, um zu sehen, ob es für eine bestimmte Tabelle neue Updates gibt. 2) Der Webservice erhält den Tabellennamen, den Sie überprüfen möchten, und die Datetime vorzugsweise im Unix-Zeitstempel. Zum Beispiel möchten Sie nach 2012-08-20 22:00:00 sehen, ob es neue Datensätze für die Tabelle "Produkte" gibt. Sie können ein Json-Objekt und eine http-Anfrage mit diesen Informationen in Ihrer App erstellen und an die Serverseite übergeben. 3) Ihr Web-Service wird Ihnen antworten und Ihnen ein json-Array mit allen Daten geben, die nach 2012-08-20 22:00:00 hinzugefügt oder geändert werden. Natürlich müssen Sie in der Server-Datenbank diese Informationen speichern (im Grunde wird jeder Datensatz ein Feld mit dem Datum der ersten Einfügung/letzten Änderung haben)
4) Sie können dann Ihre lokale SQLite-Datenbank aktualisieren.

Wahrscheinlich ist das nicht sehr effizient, aber es funktioniert.

Andrea