MySQL Datenbankdesign - Stimmt so meine Umsetzung?

X-Color

Erfahrenes Mitglied
Hallo Datenbank spezi's :-),
ich stecke gerade in einem fiktiven Projekt und hoffe das ihr mir dabei etwas Hilfestellung geben könntet. Es handelt sich dabei um ein Online-Reisebüro, welches natürlich mit einer MySQL Datenbank für Reisen und Kunden arbeitet.
Ein Konzept für das Datenbankdesign wurde soweit entworfen und muss nur noch anfangen zu funktionieren :-) Allerdings ergibt sich da ein Problem...aber zuersteinmal beschreibe ich euch mein Szenario:

Ein Mitarbeiter der Online-Reisebüros kann Reisen mit Titel, Beschreibung und Preis (Einzelperson) erstellen. Hinzu kommt die Möglichkeit, das mehrere Reisetermine und Abflughäfen enthalten sind.
Der Kunde (=Ansprechpartner) bucht eine bestimmte Reise mit ausgewählten Datum und Abflughafen. Der Gesamtpreis ist abhänig von der Teilnehmeranzahl und zu jedem Teilnehmer muss Vor- und Nachname eingetragen werden.
Bei Zahlungseingang, wird dies in der Buchung vermerkt.

So die Theorie, nun ein Screenshot aus DBDesigner 4 ohne Tabelle für die Teilnehmer: siehe Dateianhang datenbank_1.gif

Jetzt stehe ich aber vor dem Problem, wie ich es realisiere kann, das der Kunde zu seiner gebuchten reise, mehrere Teilnehmer mit Vor- und Nachname angeben kann.
Meine lösung wäre die, das eine neue Tabelle "teilnehmer" erstellt wird, die in einer 1:n Beziehung zur Tabelle "Buchung" steht (siehe Dateianhang datenbank_2.gif). Allerdings bekommt ich alle Keys aus der Tabelle Buchung in meine "teilnehmer" Tabelle geschrieben, was ziemlich üppig aussieht :(.

Könnt ihr mir weiterhelfen und auch sagen, ob alle bisherigen Tabellen korrekt umgesetzt wurden?
ich danke euch vorab schonmal sehr :-)

Lg X-Color
 

Anhänge

  • 27838attachment.gif
    27838attachment.gif
    16,5 KB · Aufrufe: 116
  • 27839attachment.jpg
    27839attachment.jpg
    41,2 KB · Aufrufe: 89
Zuletzt bearbeitet:
Hallo!


Also die Umsetzung sieht schon mal nicht so schlecht aus, aber n:m Relationen sollten in eine weitere Tabelle (1:n) aufgelöst werden.


Aus Michael Kofler MySQL 5:
Für n:m Relationen ist zwischen den beiden Ausgangstabellen eine zusätzliche Tabelle erforderlich, über die die n:m Relation auf zwei 1:n Relationen zurückgeführt wird.

Das ganze muss mit Foreign Keys gemacht werden. Wenn du die Relationen sauber aufgelöst hast, stehen ja immer alle Tabellen zueinander in Beziehung. So kannst du dann auch über verschiedene Abfragen die Ergebnisse bekommen. Mach erst mal das! Danach musst du dich noch mit den 3 Normalisierungsformen auseinander setzten. Wenn dann da alles passt geht der Rest viel, viel leichter. http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)



Gruß
Buba
 
Zuletzt bearbeitet:
Zurück