Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Table in einer Table (https://www.delphipraxis.net/1001-table-einer-table.html)

MichaelSchaefer 6. Okt 2002 11:06


Table in einer Table
 
Hallo!

Ich arbeite zwar mit Borland C++-Builder und nicht mit Delphi, aber in diesem Forum sollte sich - hoffe ich - doch jemand mit den Paradox7-Datenbanken der BDE auskennen. Zum Problem:

Ich entwickle zur Zeit ein System zur elektronischen Erfassung und Verwaltung der Schulbücher unserer Schule. Dazu sollen für jedes Buch die bisherigen Benutzer gespeichert werden. Dazu will ich innerhalb der Table für das Buch ein weiteres Table einbauen, schließlich können ja unterschiedlich viele Benutzer vorkommen, das Ganze soll also variabel sein.

Wie geht das? Ich hoffe mein Problem ist verstanden worden. Wenn nicht bitte nachfragen, ich erläutere es dann besser - hoffe ich.

Michael Schaefer

Daniel B 6. Okt 2002 11:24

Hallo Michael und Willkommen,

Du könntest doch im OnNewRecord von Table1, also wenn ein Buch aufgenommen wird, z.B. eine Einfach ListBox Createn und dort alle bisherigen User auflisten.
Du willst doch, das wenn ein Buch neu aufgenommen wird oder neu angelegt, einfach eine Auflistung sichtbar wird wer das Buch ausgeliehen hat oder hatte?!?
Oder hab ich da was falsch verstanden?

Grüsse, Daniel :hi:

Hansa 6. Okt 2002 11:25

Hi,

du brauchst keine Table in der Table, sondern 2 Tables. Eine für das Buch und eine zweite für die variablen Daten. Also eine Master-Detail Relation, wobei der Buch-Datensatz die Master- und die Verleihdaten die Detailtabelle wäre. Schließlich brauchst Du die Buchdaten nicht bei jedem Verleihvorgang mitzuschleppen.

Gruß
Hansa

sakura 6. Okt 2002 11:43

Liste der Anhänge anzeigen (Anzahl: 1)
Eigentlich ist die Lösung recht einfach. Du benötigst drei Tabellen. Die erste Tabelle speichert die Daten der Schüler und die zweite Tabelle die Daten der Bücher. Die dritte Tabelle stellt die Verlinkung zwischen den ersten beiden Tabellen dar.

Für jedes Mal, wenn ein Buch verliehen wird, dann wird in die dritte Tabelle ein Link auf den entsprechenden Schüler und ein Link auf das entsprechende Buch gesetzt. Zusätzlich werden dort die Daten gespeichert, welche mit dem Verleih im Zusammenhang stehen (z.B. Datum von-bis).

Anbei ist eine kleine Grafik, welche das Prinzip veranschaulicht.



Ausserdem such mal bei Google nach "Datenbanken normalisieren", da findest Du eine Menge an Informationen zum Thema DB-Design.

Viel Erfolg, wir helfen auch BC++.

MichaelSchaefer 6. Okt 2002 11:44

Was ist mit Master-Detail RElation gemeint? Verstehe ich das so, dass man in beiden Tables einen eindeutigen Schlüssel hat, zb die Buchnummer, der den Eintrag aus der Ausleiher-DB dem entsprechenden Buch zuordnet?

MichaelSchaefer 6. Okt 2002 11:47

Den letzten Eintrag hab ich zu spät gesehen. ich denke das ist schon die antwort auf meine letzte frage gewesen. ich werde mal versuchen, das so zu realisieren. vielen dank schon mal für die hilfe.

MrSpock 6. Okt 2002 11:48

Hallo Michael,

das ist korrekt. Die dritte Tabelle enthält dann nur noch die Beziehung BuchNr und LeserNr und eventuell noch Datum der Ausleihe oder der Rückgabe.

MichaelSchaefer 6. Okt 2002 11:53

kann das nicht auf dauer ein problem mit dem verwaltungsaufwand geben? ich meine unsere schule hat zwischen 20 und 30 klassen mit je etwa 25 schülern, die jedes jahr in etwa 5 bis 7 fächern bücher bekommen (alles grob geschätzt) -> ca. 3000 - 4000 Bücher pro Jahr, da wachsen die datenbanken recht schnell an. gibt das nicht einen sehr hohen verwaltungsaufwand wenn man die gesamte ausleiher-history so verarbeiten will? ich kenn mich da noch nicht so ganz gut aus!

sakura 6. Okt 2002 11:57

Wenn Du den Jahrgang in die Ausleihtabelle nimmst und diesen indizieren lässt, dann geht das recht gut, da die Datenbank die Struktur dahingehend optimiert, dass Suche etc. sehr schnell geht. Wahrscheinlich kann man die Einträge nach ein paar Jahren auch verwerfen, da es nicht interessant ist, wer vor zehn Jahren das Buch hatte, welches seit fünf Jahren auf der Mülldeponie liegt.

Hier noch eine interessante Sammlung an Dokumenten zum DB-Design.
http://www2-iiuf.unifr.ch/ds/courses/db/

...:cat:...

MichaelSchaefer 6. Okt 2002 12:05

danke danke, ich werde jetzt mal versuchen die sache programmiertechnisch in den griff zu bekommen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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