AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank für Verwaltung + generelle Frage
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank für Verwaltung + generelle Frage

Ein Thema von Thorben86 · begonnen am 11. Mär 2006 · letzter Beitrag vom 12. Mär 2006
Antwort Antwort
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#1

Datenbank für Verwaltung + generelle Frage

  Alt 11. Mär 2006, 17:49
Datenbank: woher soll ich das wissen • Zugriff über: hängt von der DB ab
Hi,

ich hab vor ne art Verwaltung zu schreiben, von der Größe her denke ich nicht, dass es sich hierbei um Tausende Einträge handelt .
Nun muss ich die einträge ja auch irgendwie speichern, wo nun mein Problem liegt.

Die Datenbank sollte auf dem Desktop-PC liegen und sie sollte mit dem Programm mitlieferbar sein.
Damit fallen Sachen wie MySQL oder BDE ja raus.

Habe bisher außer einer kleinen DB über MyBase noch nicht mit Datenbanken gearbeitet.
So weis ich nicht, ob es mit den meisten Datenbanken möglich ist, dass ich z.B. zu einem Eintrag eine Dynamische anzahl aus Elementen eines Typs hinzufügen kann (siehe Code).

Soweit ich mich erinnern kann musste man bei der DB über MyBase die verfügbaren Felder anlegen und deren größe festlegen, somit wäre ja eine Dynamische Anzahl eines Feldes / Eintrag nicht möglich, oder?

Weitere frage: Wenn ich jetzt will, dass man z.B. bei Kategorie mehrere ausgewählt werden können, muss ich die dann durch durch ein trennzeichen in das eine feld schreiben, oder gibt es die möglichkeit dafür jeweils eins zu haben, also quasi ein array.

Ich hoffe ihr könnt mir hier ein paar Tipps geben, welche DB man dafür am besten sollte (sollte kostenlos sein). Über ne Ini-Datei dürfte es ja bei mehreren Einträgen irgendwann recht unpraktisch werden, oder? Bei xml weis ich auch nicht, in welchem Bereich das am besten eingesetzt wird.

MfG Thorben

Code:
Eintrag 1
  -Titel
  -Kategorie
  -Element[1]
    -Menge
    -Einheit
    -Name
  -Element[2]
    -Menge
    -Einheit
    -Name

...

Eintrag 17
  -Titel
  -Kategorie
  -Element[1]
    -Menge
    -Einheit
    -Name
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Datenbank für Verwaltung + generelle Frage

  Alt 11. Mär 2006, 18:22
Hai Thorben86,

für kleine DB-Sachen verwende ich gerne die Absolute Database.

Das andere was Du möchtest hat weniger mit der verwendeten DB zu tun als vielmehr mit dem Aufbau deiner Tabellen.
Du musst also zwei Tabellen haben.
Code:
Tabelle_1
  ID : integer
  Titel : string
  kategorier : blubb

Tabelle_2
  ID : integer;
  fk_tabelle_1_id : integer // ForenKey auf Tabelle1
  menge : integer;
  einheit : blubb
  name : string
Wie Du siehst werden die Elemente in eine eigene Tabelle geschrieben. Über das Feld fk_tabelle_1_id ist dann die Verknüpfung zu den Hauptdaten gegeben.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Datenbank für Verwaltung + generelle Frage

  Alt 11. Mär 2006, 19:35
Dafür würde sich jede Art von embedded-Datanbank eignen wie z.B. Firebird oder sqlite.
Markus Kinzler
  Mit Zitat antworten Zitat
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Datenbank für Verwaltung + generelle Frage

  Alt 12. Mär 2006, 13:36
Vielen Dank schonmal, werde mich dann mal bzl dem Tabellenaufbau was schlauer machen.
So wie ich das verstanden hab hab ich dann z.B. beim ersten eEintrag
Code:
Tabelle_1
-ID
...

Tabelle_2
-fk_tabelle_1_id <-erstes element für tabelle_1
...
Tabelle_17
-fk_tabelle_1_id <-17. Element für tabelle_1 

und dann mach ich mit Tabelle 18 weiter?
Tabelle_18
-ID
demnach wäre der Tabellenname dann für die Barbeitung irrelevant, da ich ja nicht alle Tabellen umbenennen kann, wenn ich in z.B. ein element für tabelle 1 hinzufüge (oder Lösche?).
Also müsste ich alles über die ID bzw über die Keys laufen lassen, nur da stellt sich mir die frage, wie weis ich, wenn ich alle Elemente zu Eintrag 1 haben will, welche dazugehören, ohne alle durchzugehen.

Gibt es irgendwelche nennenswerte Unterschiede zwischen den 3 genannten Datenbanken? Sind ja alles Embedded- Datenbanken. Ist es z.B. möglich, dass ich zur laufzeit bestimte ausgewählte einträge in eine eigene Datenbank/ein neues Datenbank-FIle speichere, um die daten dann z.B. an einem anderen zu Client laden und in die eigentliche zu importieren?

Kennt ihr event. ein paar Tutorials diesbezüglich, die u.a. das Grundverständnis, wie z.B. den Tabellenaufbau erklären. Werd mir auf jedenvall nochmal bei DSDT die Datenbank-Reihe ansehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datenbank für Verwaltung + generelle Frage

  Alt 12. Mär 2006, 13:45
Sqlite ist eine reine embedded Datenbank. Fb embedded ist nur ein spezieller Client für FireBird-Server, welcher einene Server eingebaut hat; man kann somit einfach durch Umkonfigurieren auch auf externe FB-Server zugreifen.

Zitat:
Also müsste ich alles über die ID bzw über die Keys laufen lassen, nur da stellt sich mir die frage, wie weis ich, wenn ich alle Elemente zu Eintrag 1 haben will, welche dazugehören, ohne alle durchzugehen.
mit einer SQL-Abfrage select * from Tabelle2 where fk_tabelle_1_id = 1; liefert dir alle Einträge von Tabelle2 die mit dem Eintrag von Tabelle1 mit der ID 1 verknüpft sind.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz