| 

.NET C# Java Javascript Exception

4
Hallo zusammen,
wenn ich einen User Formulardaten auf einem iPad eingeben lasse, was ist die best Practice hierfür um diese Daten persistent zu machen. Macht es generell Sinn, eine SQLite Datenbank zu verwenden und jedes "Formular" sobald es abgespeichert wurde als eigenen Datensatz zu erfassen? Oder gibt es Wege, die wesentlich mehr Sinn machen?
25.01.2012
3 Antworten
1
Jup die SQLite Lösung liegt in diesem Fall nahe. Du kannst dann auch mitprotokollieren, welche Datensätze bereits erfolgreich übertragen wurden etc.

CoreData muss man natürlich nicht verwenden. Man kann die sqlite DB natürlich auch manuell erstellen, dem Bundle hinzufügen und dann mit den Methoden von <sqlite3.h> darauf zugreifen. Ob direkt serialisiert oder nicht dürfte von der Performance her in deinem Fall keine große Rolle spielen. SQLite spielt seinen Vorteil eben über die Fähigkeit aus, Queries absetzen zu können. Ist das kein Anwendungsfall würde ich darauf verzichten, weil es deine Anwendung nur komplexer macht, ohne einen direkten Nutzen zu erzielen, sieht man mal davon ab, das es von der Architektur her evtl. "schöner" ist.
26.01.2012
puls200 3,3k 6
0
Es kommt (wie immer) "darauf an". Wahrscheinlich willst du die erfassten Daten zu irgendeinem Zeitpunkt weitergeben? Vielleicht an einen Webservice? Kannst du mehr dazu schreiben?

Selbst wenn du das tust ist es immer empfehlenswert, Daten auf dem Gerät zwischenzuspeichern, z.B. für den Fall wenn keine Onlineverbindung besteht. Du kannst dafür SQLite verwenden. Sind es nur "einfache" Daten, die sich z.B. aus NSDictionary oder NSArrays zusammensetzen kannst du diese Objekte auch direkt serialisieren und dir den Aufwand mit coreData sparen.

Dafür kannst du die Methoden
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
bzw.
+ (id)dictionaryWithContentsOfFile:(NSString *)path
verwenden.
26.01.2012
puls200 3,3k 6
0
Guten Morgen!

Ha... ich wusste schon, das die klassische Juristenantwort auf meine vage Frage folgen musste! :) Aber klar kann ich ein wenig mehr erzählen. So ist es... ich möchte die Formulardaten zuerst mobil erfassen und dann an einen Webservice weitergeben über eine SOAP Schnittstelle, wobei die Daten letztendlich noch einer Konformitätsprüfung anhand einer XSD geprüft werden. Die Daten sollten daher natürlich auf dem Gerät persistent sein und dann auf "Knopfdruckt" im XML Format übermittelt werden.

Daher dachte ich eben an eine SQLite Lösung, da die Daten dann alle erfasst werden könnten und ausgewertet. Die direkte Serialisierung stelle ich mir für so große Datensätze fast ein wenig "zu einfach" vor :) Wenn man das so sagen kann. Da stellt sich mir auch schon die Frage.... CoreData wirklich verwenden, oder nicht einfach über FMDB selber auf eine SQLite Datenbank zugreifen. Andererseits wär es doch egal, oder? CoreData erstellt ja ebenfalls eine SQLite Datenbank auf die ich zugreifen könnte am Ende?
26.01.2012

Stelle deine Ipad-Frage jetzt!
Sevitec Gruppe
InnoGames GmbH
infounit Software GmbH
myfactory International GmbH