![]() |
Die richtige Datenbank- und Komponentenwahl
Hallo,
ich habe vor ein älteres aber immer noch in Benutzung befindliches Programm mal auf den neusten Stand der Technik zu befördern 8-) Dazu hätte ich allerdings ein paar Fragen was die Datenbank- und Komponentenwahl angeht. Bevor ich darauf eingehe erstmal ein bisschen Text :lol: Das Programm um was es sich handelt ist in Delphi 5 begonnen und dann immer von mir upgegraded und weiterentwickelt worden. Es ist eigentlich das erste "größere" Projekt was ich jemals in Angriff genommen habe und es, kurz nachdem ich Delphi gelernt habe, begonnen (Dementsprechend sieht auch die Source aus. Da ich immer mehr dazugelernt habe und sich mein Programmierstil entsprechend geändert hat, ist das wirklich kein schöner Anblick :roll:). Aber es funktioniert halt! Es handelt sich um eine Protokoll-Software die im Moment von ca. 5-7 Leuten aus meinem Bekanntenkreis regelmäßig benutzt wird. Ich kenne allerdings noch einige Leute die das Programm gerne verwenden würden, allerdings scheitert es an einigen Punkten:
Das Programm wollte ich daher mal komplett neu aufsetzen und um einige Features, eine schönere UI und sogar um eine Android App erweitern. Jetzt habe ich dazu, wie angekündigt ein paar Fragen:
So... Ich hoffe ich konnte euch vermitteln was mir gerade so durch den Kopf geht und freue mich auf eure Antworten :-D Gruß, Lukas |
AW: Die richtige Datenbank- und Komponentenwahl
Wenn es mit Synchronisierung sein soll, dann vielleicht local sqlite überall, wird es wohl bei Android sowieso werden.
Als DB mySQL, MariaDB, Firebird, Postgres, .. by mySQL gibt es u.U. ein Lizen (Kostenproblem), in Deinem akuten Fall aber wohl auch nicht. Zu aktuellen Delphiversionen und Firedac kann ich leider nichts sagen. Was mich etwas stutzig gemacht hat waren die Worte "..jeder Nutzer seine Tabelle, auf die ich dann zugreife.." Idr haben Nutzer keine eigenen Tabellen, sondern alle eine, die dann ggF. nach User im Zugriff gefiltert wird. Bedeutet für die Gesamtschau (Dich), Du brauchst wirklich nur auf eine Tabelle zu schauen und siehst alles. Aber überhaupt, nur eine Tabelle, Server, Synchronisation? Kanonen, Spatzen? Ich kann mir leider unter Protokoll-Software auch wenig Konkretes vorstellen. (Von "Wer steht wo beim Staatsbesuch?" über "Protokoll Schreiben" bis "Protokollanalyse" ) Excel: In Zeiten von OpenDocument Format sollte jeder auch System unabhängig auf seine Kosten kommen. Insgesamt solltest Du vielleicht etwas Datenbankgrundlagen lernen, damit Du Dich in 6 Monaten nicht wieder über den Mist ärgerst, den Du damals verzapft hast. Wenn es wirklich nur eine Tabelle ist, aber vielleicht auch nicht so dramatisch. |
AW: Die richtige Datenbank- und Komponentenwahl
Hallo,
um deine Vortellung um was es da geht nochmal ein bisschen auszudehnen: Es handelt sich um ein Programm um Trainingsfortschritte im Leistungssport nachzuvollziehen. Man hat praktisch eine GUI mit Feldern, in die Werte eingetragen werden. Über eine Liste lassen sich die verschiedenen Trainingseinheiten anwählen/editiern/löschen und neu erstellen. Je nach Eintrag wird dann mit FindKey der entsprechende Datensatz in der myBase DB gesucht. Nachteil ist neben den bereits genannten auch, das man z.B. nicht immer direkt nach dem Training zuhause ist und direkt alle Daten eintragen kann. Ein Handy App würde das Problem umgehen, dass man nach einiger Zeit sich nicht mehr genau an das Training erinnern kann. Die präzision der Werte ist allerings sehr wichtig. Mit dem Satz "..jeder Nutzer seine Tabelle, auf die ich dann zugreife.." wahr im Sinne von "Ich" meine Anwendung gemeint :-D Aber ja, dein Vorschlag geht natürlich auch. Aber du hast wohl Recht, mich erstmal mit SQL auseinanderzusetzen ist wohl der beste Ansatz für dieses Vorhaben. Was mich auch noch interessiert sind die Tethering Komponenten. Somit könnte ich bei Fehlender Internetverbindung immer noch Daten zwischen mehreren Geräte in einem Netzwerk austauschen (mit die Geräte eines Users zumindestens alle synchron sind). |
AW: Die richtige Datenbank- und Komponentenwahl
Bei den Vorgaben würde ich zwangsweise immer auf einem Webserver speichern. REST-Schnittstelle anbieten und mit allen Anwendungen darauf zugreifen. Die Datenbank dahinter ist dann Nebensache und nach aussen hin völlig egal, weil es keine direkten Berührungspunkte gibt.
Lokal ein SQLite (läuft auf allen Plattformen, sonst wäre auch jedes andere lokale DB-System denkbar). |
AW: Die richtige Datenbank- und Komponentenwahl
Zitat:
|
AW: Die richtige Datenbank- und Komponentenwahl
|
AW: Die richtige Datenbank- und Komponentenwahl
Zitat:
Für Client/Server Kommunikation gibt es eine einfache Regel: traue niemals einem Client. Den Client indiekt, über eine HTTP Anbindung, mit dem Datenbankserver, sprechen zu lassen ist ein erster Schritt zur Absicherung, denn der Server wird jede HTTP Anfrage prüfen und erst wenn alles ok ist eine Datenbankanfrage an den MySQL Server erzeugen. Der Aufwand ist natürlich anfangs größer, aber der mögliche spätere Nutzen steigt auch. Zum Beispiel könnte der Webserver Lastverteilung auf diverse HTTP Server und Datenbanken möglich machen. Auch gesicherte Verbindungen sind über TLS (HTTPS) problemlos möglich. Auch die Benutzerkonten des MySQL Servers werden nicht extern verwendet, Der HTTP Server kann seine ganz eigene anwendungsbezogene Benutzerverwaltung haben, und vieles mehr. |
AW: Die richtige Datenbank- und Komponentenwahl
Okay, dann heißt das für mich jetzt erstmal viel viel lesen und basteln :P
Dankeschön! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 Uhr. |
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