2016-10-10 3 views
0

Ich habe eine Telefonanwendung, die eine Datenbank von Wörtern verwendet und einen Benutzer testet, um zu sehen, welche Wörter sie kennen. Ich habe eine SQLite-Datenbank mit den Wörtern, die ich mit einer Konsole-Anwendung auffüllen und das wird dann als Ressource für Telefone usw. bereitgestellt.Wie kann ich die Datenbank in meiner Anwendung aktualisieren und gleichzeitig Benutzerbewertungen und Einstellungen beibehalten?

Wenn der Benutzer die Anwendung ausführt, speichert es Pass Fehler Daten in der gleichen Datenbank aber in anderen Tabellen.

Wenn ich die Anwendung aktualisiere, wird eine neue Kopie der Wörter-Datenbank auf dem Telefon installiert, und alle Benutzerdaten gehen verloren.

Wie wird das normalerweise gehandhabt? Verfügen Telefonanwendungen, die SQLite verwenden, über mehrere Datenbanken, von denen eine zum Speichern von Benutzerdaten und die anderen Daten zum Speichern verwendet werden, die bei der ersten Installation oder Aktualisierung der Anwendung eingegeben werden können?

Wenn mehrere Datenbanken verwendet werden, ist es dann möglich, eine Suche von einer Datenbank zur anderen zu erstellen?

Vielen Dank im Voraus für jede Hilfe, Ratschläge oder Links, die mich in die richtige Richtung weisen.

+0

Normalerweise würden Sie beim Aktualisieren des Schemas Datenbankmigrationen vornehmen. – Egor

+0

@Egor - Kannst du ein bisschen mehr darüber erzählen, was du meinst? Das größte Problem, das ich habe, ist, dass ich eine aktualisierte Tabelle mit ein paar hundert weiteren Einträgen bekomme, die dem Client hinzugefügt werden müssen. –

+0

Entschuldigung, ich habe Ihre Frage nicht richtig verstanden. Ich denke, Sie können mit einer einzigen Datenbank gut zurechtkommen, aber die Implementierung Ihres Anwendungsfalls mit 2 Datenbanken sollte auch kein Problem sein - Sie werden nur zwei 'SQLiteOpenHelper'-Klassen haben, die Daten von einander abfragen können. – Egor

Antwort

1

Ich würde eine Datei (JSON oder Nur-Text) verwenden, um die Wörter mit der App zu versenden. Wenn die App ausgeführt wird, liest sie diese Datei und fügt die neuen Wörter der Datenbank hinzu. Dies wirkt sich nicht auf die anderen Tabellen aus.

0

Anstatt damit umgehen zu müssen, codieren wir die Werte fest in eine statische Methode im Code. Dann sehen wir zur Laufzeit, ob es Daten in der Tabelle gibt, und wenn nicht, greifen wir die hartcodierten Daten und führen eine Einfügung durch.

In Ihrem Fall würde ich auch nur eine Versionsnummer hinzufügen, also wenn die Version niedriger war oder die Tabelle leer war, lösche ich alle und füge dann deine neuen statischen Daten ein.

Verwandte Themen