2016-04-19 6 views
-1

Ich versuche, Anwendung zu entwickeln, in der ich Datenbank auf dem Server in phpMyAdmin habe, die ich mit json Objekte Daten aus analysieren nehme, natürlich verschiedene Benutzer verschiedene Daten und einige Benutzer teilen die gleichen Daten. Das Problem ist, dass wenn ich die Daten vom Server nehme, es manchmal zu lange dauert, und wenn ich es auf dem Gerät abspeichere, wird es effizienter, aber einige Benutzer teilen die gleichen Daten (sie können Daten löschen und hinzufügen). Mein Problem ist also, dass - wie kann ich SQlite mit myPHP kombinieren, so dass der Benutzer die Daten zum ersten Mal anmeldet und vom Server in die Gerätedatenbank einträgt und das nächste Mal, wenn sich der Benutzer einloggt aus der Gerätedatenbank entnommen werden. und wenn er Änderungen vornimmt, aktualisiert er beide DatenbankenDatenspeicher in android - Kombinieren von SQlite mit myPHP

+0

Mit welchem ​​Problem haben Sie dies zu erreichen? – Yashasvi

+0

ich weiß nicht den Weg, das zu tun .. Ich habe gesehen und gelesen viele Tutorials über beide Datenbanken, aber nichts mit der Kombination von ihnen – ATT

+0

Ich denke, Sie müssen die Datenbanken replizieren, nicht kombinieren sie. Recht? Und dann, wenn Sie einen ändern, ändern Sie auch den anderen. – Yashasvi

Antwort

0

Sie müssen Datenbankschema sowohl auf Server als auch auf Client replizieren.

Holen Sie sich die Ergebnisse zum ersten Mal vom Server. und speichern Sie es in Ihrem lokalen sqilite. Speichern Sie dann in SharedPreferences eine Markierung, um in Zukunft zu wissen, dass Sie die Ergebnisse von der lokalen Datenbank abrufen müssen.

Danach, wenn Änderungen in der lokalen db vorgenommen werden, müssen Sie es auch auf dem Server aktualisieren. Es hängt von Ihrem Anwendungsfall ab, wie schnell Sie auf dem Server aktualisieren möchten.

Wenn Sie es nicht sofort möchten, können Sie mehrere Anrufe warten und bündeln und dann mit Job Scheduler API auf dem Server veröffentlichen.

Wenn Sie möchten, dass Änderungen auf dem Server so schnell wie möglich geschehen sollten, spinnen Sie einen neuen Thread aus und posten Sie sie sofort.

0

Sie können dies so erreichen ..

Für verschiedene Arten von Benutzern sollten Sie die Daten nach Benutzername oder einer Benutzer-ID (die vom Benutzer auf Wunsch senden wird) senden und gemeinsame Daten an alle Benutzer senden.

Sie jetzt zum Hauptproblem kommen ..

Bei Benutzer sich anmelden Anfrage senden Ihnen alle Daten (auf Basis der Benutzer-ID/username) von phpdatabase (vom Server) an Benutzer und alle Daten in Android speichern Gerät.

und wenn der Benutzer neu signiert In dieser Zeit werden Sie überprüfen, ob die Android-Gerätedatenbank null ist (Daten haben) oder nicht. Wenn die Android-Gerätedatenbank nicht null ist, führen Sie keine neue Anfrage von phpdatabase für Benutzerdaten aus.

Nun, wenn der Benutzer eine Änderung wie Sie sagte Benutzer löschen etwas oder aktualisieren Sie etwas, dass Sie haben eine neue Anfrage von Android-Gerät zu phpdatabase (Server) zum Löschen/Hinzufügen/Aktualisieren. und zuerst werden Sie eine Anfrage von Gerät zu Server (phpdatabase) für die Änderung auf der Serverseite machen und wenn dieser Service/Anfrage wahr zurückgibt, dann werden Sie diese Daten in der lokalen/Gerätedatenbank ändern/aktualisieren.