E/R Diagramm, brauche Ratschlag

Anaxarch

Grünschnabel
Hallo liebe Leute,

ich bin gerade dabei, ein E/R Diagramm fuer die Datenbank eines Seminars zu erstellen (Aufgabe fuer einen Kurs). Soweit geht es nur um die theoretische Umsetzung auf dem Papier !

Eine Entitaet im Diagramm sind die "Besucher". Diese zahlen eine Gebuehr fuer die Teilnahme am "Seminar" und eine extra Gebuehr fuer die Teilnahme an "Workshops" (Es muss auch abgebildet werden, falls ja, an welchen Workshops sie teilnehmen)

Okay, wie bilde ich jetzt im Diagramm ab, was die Besucher im einzelnen zu zahlen haben und verlinke dies zu meiner Entitaet "Gebuehr" ? Meine Gedanken drehen sich hier immer im Kreis und ich komme nicht dahinter.

Als Attribut der "Besucher" muss ich ja den Fremsschluessel "Workshop ID" abbilden, um erkenntlich zu machen, an welchen Workshops sie teilnehmen. Muss ich an dieser Stelle mit einem "Ja/Nein" Attribut arbeiten und falls "Ja" der Fall ist, setze ich die Workshop ID ? Wie ist die Verbindung zur "Gebuehr" und deren Attribut "Gesamtsumme" ?

Ich hoffe, es wird deutlich, worum es geht !

Besten Dank fuer Eure Hilfe.
Anaxarch
 
Du hast die Entität "Besucher" und die Entität "Seminar". Zwischen diesen besteht eine m:n-Relation; ein Besucher kann an mehreren Seminaren teilnehmen, und ein Seminar hat mehrere Besucher. Um das abbilden zu können, brauchst du eine Entität "TeilnahmeSeminar", welche diese beiden assoziiert. Sie hat jeweils einen Fremdschlüssel für einen Besucher und einen Fremdschlüssel für das Seminar; zusätzlich dazu hat sie einen Fremdschlüssel für die "Gebühr", die dieser Besucher für das jeweilige Seminar zu bezahlen hat. Für jedes Seminar, an dem ein Besucher teilnimmt, wird dort ein eigener Datensatz gespeichert. Der zusammengesetzte Schlüssel "Besucher/Seminar" ist eindeutig.
Für die Teilnahme an Workshops verfährst du genauso.
 
Besten Dank Vereth ! Das Prinzip erschliesst sich mir jetzt teilweise. Jedoch frage ich mich, wie die Verbindung der neuen Entitaet "Teilnehmer/Seminar" mit "Besucher" und "Seminar" selbst aussieht ? Ist das eine ternaere Verbindung, sprich Verbinde ich T/S mit der Relationship zwischen Besucher und Seminaren oder bildet das ganze eine Art Dreieck mit 2 Verbindungen jeweils zu B und S ?

Vielleicht sollte ich die Entitaet "Gebuehr" ganz weglassen und die Gebuehren als Attribute dem Seminar und Workshops hinzufuegen?

Okay, letzte weiterfuehrende Frage : Ich habe mir gedacht, eine Zahlungsmethode fuer die Gebuehr hinzuzufuegen, wuerde ich dann einfach "Besucher" m:n mit meiner Entitaet "Gebuehr" verbunden lassen und "Gebuehr" mit "Zahlungsmethode" und deren Attributen "Zahlungs_ID" und "Methode" verknuepfen ? Folglich dann "Zahlungs_ID" als Fremdschluessel bei "T/S" hinzufuegen ?
 
Zwischen Besucher und Seminar gibt es dann keine direkte Relation mehr, diese läuft dann nur noch über die Entität TeilnahmeSeminar, welche die m:n-Relation in eine 1:m- und eine n:1- Relation aufsplittet. Das ganze sieht dann so aus wie eine Kette:

Benutzer(1)---------(m)TeilnahmeSeminar(n)----------(1)Seminar

Du hast dann sozusagen eine zusätzliche Entität 'dazwischengeschoben', um die m:n-Relation in zwei 1:m bzw. n:1-Relationen aufzuteilen.

Beispiel:

Entität Benutzer (Id, Name):
- B1, Alice
- B2, Bob
- B3, Charlie

Entität Seminar (Id,Thema):
- S1, Windows
- S2, Linux
- S3, MacOS

Entität TeilnahmeSeminar (BenutzerId,SeminarId)
- B1, S1 // Alice möchte mehr über Windows wissen
- B1, S2 // Alice möchte aber auch Linux kennen lernen
- B2, S3 // Bob möchte mit Alice nichts zu tun haben und wählt deshalb MacOS
- B3, S3 // Charlie kommt aus Solidarität zu Bob mit
- B3, S2 // Charlie ist aber neugierig auf Alice und schreibt sich deshalb auch bei einem ihrer Kurse ein

Zur weiterführenden Frage: Wenn jeder dieselbe Gebühr für ein Seminar zu zahlen hat, kannst du den Fremdschlüssel für die Gebühr als Attribut bei der Entität Seminar hinzufügen, ansonsten ist es besser, sie bei Teilnahme unterzubringen. Wo du die Zahlungsmethode einzufügen hast, kann ich dir nicht genau sagen, es ist alles eine Frage der Abhängigkeit, also der Relation; wahrscheinlich ist es aber wirklich das Beste, sie als Fremdschlüssel in die Entität TeilnahmeSeminar einzutragen.

Du kannst möglicherweise die Entitäten Seminar und Workshop zu einer Entität Kurs zusammenfassen, der du dann das Attribut Typ mit den Werten "Workshop" bzw. "Seminar" hinzufügst.
 
Zuletzt bearbeitet:
Zurück