Martin Freitag
- Forum-Beiträge: 51
24.04.2012, 19:30:57 via Website
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.
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
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.