Entwickler-Ecke

Datenbanken - Entscheidungshilfe bei Wahl der DB


DeadlyAppearance - Mi 27.02.08 10:14
Titel: Entscheidungshilfe bei Wahl der DB
Einen schönen guten Morgen.

Und zwar möchte ich gerne meine alte Lösung, welche in PHP und MySQL umgesetzt wurde, nun in Delphi umsetzen.

Ziel ist es, eine Software auszuliefern, welche ohne weitere Installationen/Einrichtungen auskommt.

Der Datenbestandt besteht aus einer Tabelle, 10.000 bis 50.000 Einträge.
Es werden ca. 1500 Updates/Inserts pro "Run" ausgeführt, wo geprüft werden muss, ob diese bereits existieren und wenn ja, so müssen gewissen Daten vergleichen werden.

Dies über eine Textdatei zu lösen wird wohl alles andere als Performant denke ich.

Was ich auf keinen Fall möchte ist eine Lösung, wo der Anwender noch ODBC einrichten muss oder ähnliches.

Eine Installation von MySQL ginge noch gerade so, aber da hier ein User angelegt werden müsste etc. würde ich auch diese Lösung nur ungern nutzen.

Welche Vorschläge hättet ihr denn, wie bzw. mit was man dieses Problem lösen könnte?


Martin1966 - Mi 27.02.08 10:22
Titel: Re: Entscheidungshilfe bei Wahl der DB
Hallo :wink2:

user profile iconDeadlyAppearance hat folgendes geschrieben:
Der Datenbestandt besteht aus einer Tabelle, 10.000 bis 50.000 Einträge.

Und wie groß ist ein Datensatz? Wenn jeder Datensatz nur aus einem oder zwei Felder besteht könnte man noch drüber nachdenken, die Daten komplette im Speicher selbst zu verwalten (Verkettet Liste oder so).

Ansonsten kann ich dir Suche in Wikipedia FIREBIRD empfehlen. Eine Installation von Firebird ist nicht notwendig. Man kann einfach eine DLL mit ausliefern und fertig. Bein DSDT findest du auch einen guten Artikel über ZEOS Library - Einsatz mit Delphi und Firebird [http://www.delphi-treff.de/tutorials/datenbank-tutorials/win32/zeos-library-einsatz-mit-delphi-und-firebird/].

Lg Martin


DeadlyAppearance - Mi 27.02.08 10:50

Hier einmal die DB Felder.


SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
tinyint(3)
varchar(255)
varchar(17)
tinyint(3)
tinyint(3)
tinyint(3)
tinyint(3)
datetime
datetime
tinyint(3)
tinyint(3)
tinyint(3)
int(10)
int(10)
int(10)
int(10)
int(10)
int(10)
tinyint(3)
int(10)


Warum wäre denn z.B. Firebird vor Absolute Database zu beforzugen?


Martin1966 - Mi 27.02.08 11:29

user profile iconDeadlyAppearance hat folgendes geschrieben:
Warum wäre denn z.B. Firebird vor Absolute Database zu beforzugen?

Kann ich nicht sagen da ich mit Absolute Database noch nie gearbeitet habe. ;-)

Bei den Anzahl an Feldern denke ich ist wohl eine DB angebracht.


zuma - Mi 27.02.08 14:25

evtl. kann ein TClientDataSet dir weiterhelfen ??
wie ich mal so schön gelesen hab:
TClientDataSet, the Database u dont have ;)

hab mal so was gemacht, die Daten hab ich in einer (verschlüsselten) Txt-Datei gespeichert, zur Laufzeit hab ich die dann ins Clientdataset eingelesen und konnte dann damit arbeiten wie mit nem Query (locate, insert, next, etc. ). Darin hatte ich so ca. 4000-5000 Datensätze mit ca. 20 Feldern, lief alles performant.