SQLite vs. XML vs. eigenes Format

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

SQLite vs. XML vs. eigenes Format

Beitrag von bembulak »

Hallo Leute!

Ich versuche gerade ein Programm zur Zeitmessung zu schreiben. Vorgestellt hätte ich mir das folgendermaßen:

Ich habe ein Programm im Systray. Immer wenn ich mit der Linken Maustaste draufklicke geht eine kleine Form auf, die mich ein paar Details fragt (da ich es für die Arbeit schreibe, habe ich Sachen gedacht wie Kategorie:Projekt/Internes/Pause/Lager/Regie/EDV... , Topic: eben ein Titel oder eine kleine Beschreibung, Langbeschreibung: .... ). Mit Enter/OK Button wir bestätigt und das Teil läuft im Hintergrund und misst die Zeit. Wenn wieder draufgeklickt wird, geht die Form wieder auf und das Spiel beginnt von vorne. Der vorherige Eintrag wird dann mit Datum, Startzeit, Endzeit, Daten, benötigte Zeit geloggt.
So hätte ich ziemlich gute Stundenaufzeichnungen und müsste mich am Ende des Tages nicht hinsetzen und mir die Daten aus den Fingern saugen. Am Ende vom Monat möchte ich dann einen Report haben, der mir entweder eine Detailierte Auflistung bietet (Langer Report mit vielen Einträgen), oder eben ein kleiner Report, der mir nur die Tage aufschlüsselt mit Gesamtstunden, Urlaub, usw.

Meine Frage ist nun: wie speichert man die Daten am Besten?

Meine ersten Gedanken waren SQLite oder XML, aber ich habe mit beiden keine Erfahrung. XML wäre mir persönlich sympathischer, da ich die Daten notfalls auch mit einem Editor ansehen/ändern könnte. Leider wird XML sicher lahm, wenn ich mit 10 Einträge / Tag * ~ 330 Tage rechne. Also rund 3300 Datensätze / Jahr.

Ich bin mir sicher, das SQLite hier performanter wäre und die Möglichkeiten zum Filtern (allein schon wegen dem Report) auch besser wären. Nur habe ich hier NULL Erfahrung - gerade in Bezug auf des Datenbankdesign (Tabellen, Verknüpfungen, Primärschlüssel, ...) mache ich mir da große Sorgen. Ausserdem habe ich SQLite noch nie unter Lazarus installiert. Es wird sicher eine Hilfe im Netz geben, aber die muss ich noch suchen. :oops:

Die letzte Möglichkeit wäre sicherlich, einzelne Records in eine Datei zu schreiben, aber ich kann mir nicht vorstellen, dass dies viel Sinn macht. Es ist sicherlich nicht performant, die Filter- und Suchmöglichkeiten müsste ich alle selber schreiben, usw.

Ich wäre jedenfalls sehr dankbar, wenn ihr mir ein paar Tips geben könnten und hier fröhlich mitdiskutiert. Ich bin schon auf eure Meinungen und Anregungen gespannt. Dankeschön und viele Grüße,

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich würd dazu dbf nehmen oder sqlite. Wobei sqlite wohl schon fast wieder mit Kanaonen auf Spatzen geschossen ist. DBase kannst auch mal schnell in Excel öffnen o.ä.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

Wenn du dir die Arbiet einer Zwischenschicht machst, kannst du das ganze unabhängig vom Datenbanksystem angehen. Dann kannst du mit einem Anfangen (zB. xml) und später auf ein DB system umstellen, wenn nötig oder gewollt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten