2016-05-11 8 views
1

Ich arbeite an einer Anwendung, wo ich Abfrage Fotos, einige Bearbeitungen und speichern Sie diese Änderungen für die spätere Verwendung benötigen.Android - Speichern der IDs von Fotos nach einer Abfrage und Speichern von Daten in einer Datenbank

Ich denke daran, eine SQLite-Datenbank zu verwenden, um die Änderungen zu speichern (angewendete Werte bei der Bearbeitung) und die von der Fotoabfrage zurückgegebenen Foto-IDs als Schlüssel zu verwenden. So kann ich die richtigen Änderungen für ein bestimmtes Foto abrufen.

Meine erste Frage ist, wäre es sicher anzunehmen, dass die aus der Abfrage abgerufenen IDs (getContentResolver() .abfrage()) im Laufe der Zeit nicht geändert werden, wenn die neuen Fotos hinzugefügt oder gelöscht werden das Telefon?

Meine zweite Frage ist, sehen Sie irgendwelche Grubenstürze der Verwendung einer SQLite-Datenbank zum Speichern der Änderungen für jedes Foto? Irgendwelche Empfehlungen/Gedanken über die Architektur würden sehr geschätzt werden.

Vielen Dank

Antwort

1

Ihre zweite Frage betrifft, ich denke, es ist ein guter Ansatz, einen lokalen DB zu verwenden. Ich würde das Gleiche tun.

Ich glaube nicht, dass es der beste Ansatz ist, sich auf die IDs zu verlassen. So würde ich es lösen: Ich hätte eine Spalte "original_id" in der Fototabelle, die nullfähig sein kann. Bei Originalfotos wird dieses Feld daher als Null festgelegt, und bearbeitete Fotos enthalten die ID des ursprünglichen Bildes in diesem Feld. Also, wenn ich eine Reihe von Änderungen für ein bestimmtes Foto abrufen muss, würde ich nach original_id abfragen und den vollständigen Satz von Editionen abrufen.

Hoffe es hilft!

+0

Dank Nadia. Ich bin etwas verwirrt mit deiner Antwort auf die erste Frage. Sie haben erwähnt, dass das Beantworten von IDs keine gute Idee ist. Dann empfehlen wir Ihnen, Originalbild-IDs in der Fototabelle zu speichern. Ist das nicht, dass die ursprünglichen Bild-IDs und abgefragten IDs gleich sind? Und wenn Sie das Hinzufügen einer Spalte zur Fototabelle erwähnt haben, meinen Sie die lokale db-Tabelle. Recht? Bitte klären Sie, wenn Sie können. Danke vielmals. – OrangeTree

+1

Ich meinte, dass sich die IDs nicht ändern werden, wenn sie als autoincremental festgelegt sind, aber Sie sollten einen Verweis auf das Originalfoto für jede Fotobearbeitung behalten (sonst würden Sie wissen, dass eine bestimmte Bearbeitung zu einem bestimmten Foto gehört). Es ist besser, es so zu machen, als sich darauf zu verlassen, dass die Foto-IDs 3, 4 und 8 zum Beispiel Bearbeitungen von Foto 1 sind, verstanden? Auf diese Weise kümmern Sie sich nicht um die IDs. Und ja, als ich erwähnte eine Spalte hinzufügen, meinte ich die lokale SQLite DB. –

+0

Das macht Sinn. Danke Nadia. – OrangeTree