Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Frage zu Datenablage für ein privates Projekt (https://www.delphipraxis.net/215627-frage-zu-datenablage-fuer-ein-privates-projekt.html)

pertzschc 8. Aug 2024 10:59

Frage zu Datenablage für ein privates Projekt
 
Hallo in die Runde,

ich überlege, eine kleine private Verwaltung von Aktienbeständen mit der neuesten CE Version zu erstellen und möchte Euch bezüglich der Datenhaltung um Rat fragen.

Beschreibung:
Es gibt monatliche Zuflüsse von Aktien mit Stückzahl und (Kauf-)Preis zu einem Datum. Diese möchte ich einzeln speichern.
Es gibt unregelmäßige Verkäufe dieser Aktien mit Stückzahl und (Verkaufs-)Preis zu einem Datum. Diese möchte ich auch einzeln speichern.
Die Bestände werden nach dem FIFO Prinzip abgetragen. D.h. bei Verkäufen werden die Bestände sequentiell durchgerechnet.

Meine Fragen:
Wie speichere ich die Daten am besten?
Ich wollte keine Datenbank dafür nehmen, obwohl ein Tabellendesign dafür recht einfach wäre (Ich hätte es gerne in mit einem Texteditor lesbaren Format).

Stattdessen ist meine Idee 2 DTO zu erstellen und deren Daten im JSON-Format in Daten pro Kalenderjahr abzuspeichern.
Also je eine Datei: 2022_Daten.json, 2023_Daten.json, 2024_Daten.json.
Darin jeweils ein Array mit Beständen und ein Array mit Verkäufen für das jeweilige Jahr.
Geht das mit den JSON-Klassen von Delphi entsprechend einfach, bekomme ich damit einen Zugriff effizient hin, wenn neuen Daten reinkommen (monatlich)?

Was denkt Ihr dazu?

Vielen Dank für Eure Anregungen!
Christoph

haentschman 8. Aug 2024 11:20

AW: Frage zu Datenablage für ein privates Projekt
 
Zitat:

Was denkt Ihr dazu?
...klassisches Szenario für eine Datenbank. :thumb: Was hast du gegen eine Datenbank? :gruebel:

sh17 8. Aug 2024 11:31

AW: Frage zu Datenablage für ein privates Projekt
 
Portfolie macht das mit XML, vielleicht kannst du dir da Anregungen suchen

https://www.portfolio-performance.info/

hans65 8. Aug 2024 11:34

AW: Frage zu Datenablage für ein privates Projekt
 
Datasets sind eigentlich genau für die Datenhaltung gedacht und werden ja auch wunderbar in Delphi unterstützt. Warum also nicht nutzen.
Wenn es wegen des Textformats wäre, könnte man noch CSV oder ein ClientDataSet mit
Delphi-Quellcode:
SaveToFile('MyXMLFile.XML', dfXMLUTF8)
nutzen.
MemoryDatasets mit Xml-Ein- und -Ausgabe gibt es auch noch andere, z.B. kbmMemTable oder Devart TVirtualTable.

Andreas

peterbelow 8. Aug 2024 11:50

AW: Frage zu Datenablage für ein privates Projekt
 
Zitat:

Zitat von pertzschc (Beitrag 1539637)
Hallo in die Runde,

ich überlege, eine kleine private Verwaltung von Aktienbeständen mit der neuesten CE Version zu erstellen und möchte Euch bezüglich der Datenhaltung um Rat fragen.

Beschreibung:
Es gibt monatliche Zuflüsse von Aktien mit Stückzahl und (Kauf-)Preis zu einem Datum. Diese möchte ich einzeln speichern.
Es gibt unregelmäßige Verkäufe dieser Aktien mit Stückzahl und (Verkaufs-)Preis zu einem Datum. Diese möchte ich auch einzeln speichern.
Die Bestände werden nach dem FIFO Prinzip abgetragen. D.h. bei Verkäufen werden die Bestände sequentiell durchgerechnet.

Meine Fragen:
Wie speichere ich die Daten am besten?
Ich wollte keine Datenbank dafür nehmen, obwohl ein Tabellendesign dafür recht einfach wäre (Ich hätte es gerne in mit einem Texteditor lesbaren Format).


Christoph

Egal ob JSON oder XML: wenn Du die Daten in einer Textdatei speicherst muß das Programm immer die komplette Datei einlesen, daraus eine interne Repräsentation machen, dort eventuelle Änderungen vornehmen und dann die Daten komplett in eine Datei speichern (alte in Backup umbenennen, neue erzeugen). Das geht natürlich, aber eine Datenbank ist viel einfacher da man dort direkt Datensätze anlegen, ändern, löschen, suchen kann und eine DB Engine auch für die Berechnungen/Auswertung viel Arbeit übernehmen kann (wofür gibt's SQL, nicht war?).

Textdateien bieten halt keinen direkten Zugriff auf einzelne Datensätze, es sei denn, man verwendet Datensätze mit festen Feldlängen (file of record im Prinzip, wie das alte dBase-Format).

Uwe Raabe 8. Aug 2024 12:17

AW: Frage zu Datenablage für ein privates Projekt
 
Wenn es denn nur lokal sein soll bieten sich auch bereits enthaltene Lösungen wie SQLite und IBLite an. Letzteres hat den Charme dass es ohne großen Aufwand auch in eine Server-Lösung umgewandelt werden kann. Das sind dann aber halt keine lesbaren Textformate mehr.

pertzschc 8. Aug 2024 14:28

AW: Frage zu Datenablage für ein privates Projekt
 
Zitat:

Zitat von sh17 (Beitrag 1539639)
Portfolie macht das mit XML, vielleicht kannst du dir da Anregungen suchen

https://www.portfolio-performance.info/

Danke, das werde ich mir als Tool gleich mal anschauen und ggfs. meine Arbeit sparen. Ich hatte es noch nicht gefunden, bzw. intensiv genug gesucht.

Sherlock 9. Aug 2024 15:33

AW: Frage zu Datenablage für ein privates Projekt
 
SQLite ist genau dafür gedacht. Und überraschend performant noch dazu. ;-)

pertzschc 9. Aug 2024 15:45

AW: Frage zu Datenablage für ein privates Projekt
 
Zitat:

Zitat von Sherlock (Beitrag 1539685)
SQLite ist genau dafür gedacht. Und überraschend performant noch dazu. ;-)

Danke für den Hinweis. Ich werde es mir damit einmal ansehen.

Habt Ihr nochmal 1-2 links auf notwendige Komponenten und ggfs. vielleicht ein Tutorial für SQLite als Beginn.
Ich habe das letzte Mal vor 10 Jahren SQL Server benutzt und leider keinen Zugriff auf den damaligen Source mehr.

Viele Grüße, Christoph

Sherlock 9. Aug 2024 15:56

AW: Frage zu Datenablage für ein privates Projekt
 
https://docwiki.embarcadero.com/RADS...te_mit_FireDAC

https://www.youtube.com/watch?v=i_cgZ33qCY0

Das ist mal als Einstieg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz