Entwickler-Ecke

Datenbanken - Eisenbahn-Datenbank


ti laak - Do 06.02.14 11:33
Titel: Eisenbahn-Datenbank
Mit Delphi XE3, TMS, ABS-Database versuche ich schon den x-ten Anlauf. Z.B:
Eisenbahn-Datenbank: eine Tabelle mit verschiedenen Loks (E,Damp,Diesel,etc), eine Tabelle mit den Wagen (Güter, Personen, etc). Die jeweils editierbar und erweiterbar sind. Das ist kein Problem. Nun sollen einer Lok unter Auswahl der Wagen-Tabelle, Wagen zugeteilt werden. Unter Berücksichtigung der gestellten Anzahl von Wagen(Lok). Da habe ich dann das Problem, das ich der Lok-Liste pro Lok (weil nur ein Feld) nur einen Wagen zuteilen kann. Umgekehrt nur eine Lok in die Wagen_liste eintragen kann. Statt nur einem Feld in der Lok-Liste, sollte eine weitere Tabelle für Wagen enthalten sein? Und in der Wagenliste deren zugeteilte Lok gespeichert werden.
Ich möchte keinen fertigen Quellcode, einen Tipp wie ich das angehen kann wäre nicht schlecht. Danke.


Lemmy - Do 06.02.14 11:42

Hallo,

was du beschreibst ist eine n:m Beziehung:

Jede Lok kann mehrere Waggons ziehen und ein Waggon(typ) kann an mehrere Loks gehängt werden.

eine n:m Beziehung wird durch eine weitere Tabelle aufgelöst:

LokWagen (
LokID <Typ>,
WagenID <Typ>);

und du hast dann die Möglichkeit in der Tabelle noch weitere Daten abzulegen wie z.B. an welcher Position der Wagen steht, welche Bezeichnung, Ladung,.... er hat

Grüße


Nersgatt - Do 06.02.14 11:48

Moin und willkommen in der Ecke. :welcome:

Ich denke, Dir fehlt eine weitere Tabelle. Durch die Zuordnung von Loks zu Wagen erstellst Du ja einen Zug.
Also eine Tabelle für die Stammdaten der Loks (hast Du schon):

Tabelle "LOKS"

Quelltext
1:
2:
3:
4:
5:
ID  BEZEICHNUNG
---------------
1   Dampflok
2   E-Lok
3   Diesellok


Tabelle "WAGEN"
Eine Tabelle für die Wagen:

Quelltext
1:
2:
3:
4:
5:
6:
ID  BEZEICHNUNG
---------------
1   Personenwagen A
2   Personenwagen B
3   Personenwagen C
4   Güterwagen

Nun den Zug. Zuerst mal die Grunddaten

Tabelle "ZUEGE"

Quelltext
1:
2:
3:
ID  BEZEICHNUNG LOK_ID
----------------------
1   IC0815      2


Und die Zuordnung der Wagen zum Zug:
Tabelle "ZUEGE_WAGEN"

Quelltext
1:
2:
3:
4:
5:
ZUEGE_ID WAGEN_ID
-----------------
1        1
1        2
1        3


Nun besteht Dein Zug aus der Lok 2 (E-Lok) mit den Wagen 1-3 (Personenwagen A - C).
Bei diesem Modell musst Du beachten, dass Du dem Zug nur eine Lok zuordnen kannst. Wenn man in einem Zug mehr als eine Lok haben möchte, müssten man für die Zuordnung der Loks zu den Zügen auch eine Detailtabelle machen, nach dem selben Muster wie die Wagentabelle.


ti laak - Do 06.02.14 17:31

Vielen Dank für die schnelle Antwort.
Es geht nur mit weiteren Listen, habe das fast vermutet, aber jetzt bestätigt bekommen.
Wäre ärgerlich gewesen ginge es einfacher. Was es aber auch nicht gerade einfacher macht.
Das gegeseitige Verriegeln, nach dem löschen wieder zur Verfügung zu stellen, etc.
Ich denke da kommt noch was mich zu. Egal. Ich habe Zeit. Sozusagen Rentenanwärter in Thailand.

Darf mich doch bestimmt nochmal melden, wenn es nicht weiter geht.

Also besten Dank
ti laak