Datenbank updaten (konzeptionelle Fragen)

  • Antworten:2
Martin Freitag
  • Forum-Beiträge: 51

24.04.2012, 19:30:57 via Website

Hallo zusammen,

in meiner App gibt es eine Datenbank mit mehreren Tabellen, wobei eine Tabelle dabei ist, welche mehr als 1.000 Einträge enthält und um welche es hier auch geht. Der Inhalt ist sowohl von mir vorgegeben, als auch vom User geändert, d.h. es gibt Felder welche von der App vorgegeben sind und es gibt Felder, welche durch den User geändert werden können. Es gibt keine Felder welche in beide Kategorien gehören.

Die Grundversion der App läuft soweit auch ganz gut. Ich habe 1.000 Eintäge abgelegt, User können einige weitere Felder in der gleichen Tabelle ändern. Jetzt kommt das Szenario Update. Nehmen wir mal an, ich möchte 100 Einträge hinzufügen sowie 50 bestehende Einträge abändern (ohne die Usereinträge bei diesen Einträgen zu ändern).

Mein Ansatz war, temporäre komplette Datenbank (1.100 Einträge) kopieren (dauert 1-2 Sekunden) und jetzt jeden Eintrag der Original-Datenbank und zwar Zeile für Zeile zu updaten bzw. zu erstellen, allerdings nur die vorgegebenen Werte zu ändern. Ergebnis: Dauert über eine Minute.

Daher einfach die Frage - was ist konzeptionell der richtige Ansatz für diese Art von Datenbank-Struktur und Update-Machbarkeit?

Z.B.
ID, Textfeld, Integer
Textfeld durch App gegeben
Integer änderbar durch User

Datenbank bisher
1->AB-9; 2->AC-3; 3->KJ-7

Ich möchte jetzt aber 1 auf BA ändern und einen Eintrag 4->TT hinzufügen. Die 9 vom User soll stehen bleiben, der Eintrag 4 wird mit einer 0 initialisiert. Und: Ich weiß ja vorher nicht, welche Zeilen geupdated werden sollen. Wenn der User nicht das aktuelle Update, aber vllt. ein späteres Update herunterlädt, dann müssen auch alle Zwischenupdates installiert werden. Das ist m.E. nur möglich, wenn ich immer die komplette Datenbank mitliefere und das Programm dann währen des Updates prüft, ob der Eintrag aktuell ist, oder nicht.

— geändert am 24.04.2012, 19:31:34

Antworten
Maximilian O
  • Forum-Beiträge: 990

24.04.2012, 20:39:03 via Website

Hi Martin,
SQLite besitzt doch auch eine UPDATE Funktion. Wo ist das Problem, wenn du sagst:
1UPDATE tabellen_name
2SET Textfeld ='BA'
3WHERE ID=1

Die komplett neuen Einträge fügst du dann ja wie sonst auch hinzu.

Liebe Grüße Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

24.04.2012, 23:52:35 via Website

Warum verwendest du nicht einfach 2 Datenbanken, eine für deine Werte und eine für die der User?
www.sqlite.org ist dein Freund, schau mal nach "attach" und "join" :bashful:

Antworten