Beziehung zwischen 3 Tabellen

Sven00

Sven00

Neues Mitglied
Thread Starter
Dabei seit
12.01.2012
Beiträge
18
Reaktionspunkte
0
Hallo Zusammen,

ich hab ein kleines Problem mit der Erstellung von einer Datenbank, die in einer Schule die Prüfungen verwalten soll.

Das Problem ist folgendes:

Für eine Prüfung gibt es eine Aufsicht. Die Aufsicht setzt wie folgt zusammen: weder sitzt einer vom Verwaltungspersonal in der Prüfung, ein Dozent oder sowohl aus auch.

Jetzt hab ich 3 Tabellen:

Tabelle 1: Verwaltungspersonal (ID_VerwaltungP, Name, Vorname, Bemerkung)
Tabelle 2: Dozenten (ID_Dozenten, Name, Vorname; Bemerkung)
Tabelle 3: Aufsicht (…)

Nur hab ich keinen Plan wie ich die Beziehungen zu den 3 Tabellen darstellen soll.

Erst dachte ich ich mach es wie folgt:

tbl1 --> tbl3 mc:mc (muss natürlich transformiert werden)
tbl2 --> tbl3 mc:mc (muss entsprechend auch transformiert werden)

Aber bei der Variante weiß ich nicht wirklich was dann die Attribute von Tabelle 3 sind.

Kann mir jemand bei dem Problem behilflich sein?

VG Sven
 
Wie wäre es, wenn Du statt zweier Tabellen mit Personaldaten (Verwaltungspersonal und Dozenten) nur eine Tabelle (Personal) verwenden würdest. In der Tabelle kann man dann ja festhalten, ob es sich um jemanden aus der Verwaltung oder um einen Dozent handelt.
Um dann in dem Prüfungsdatensatz zwei Personen einzutragen kannst Du entweder ein Feld ("ID_Personal") mit multiplen Werten (getrennt durch eine Zeilenschaltung) oder zwei Felder ("ID_Personal1" und "ID_Personal2") mit jeweils eigener Beziehung zur Personaltabelle verwenden.

LG Thomas
 
Ach stimmt! Auf die Idee, dass alles mit einer Personaltabelle zu machen bin ich gar nicht gekommen. Vielen dank!
 
Also ich würde das wie folgt machen:

1. Tabelle: Personal (Personal_ID, Name, Vorname, Bemerkung, Rolle_ID NOT NULL, ...)
2. Tabelle: Rolle (Rolle_ID, Rolle_Beschreibung, ...)
3. Tabelle: Prüfung (Prüfung_ID, Aufsicht_ID NOT NULL, ...)
4. Tabelle: Aufsicht (Aufsicht_ID, Personal_ID NOT NULL, ...)


Personal.Rolle_ID ist über eine Fremdschlüsselbeziehung auf die Rolle.Rolle_ID abgesichert
Prüfung.Aufsicht_ID ist über eine Fremdschlüsselbeziehung auf die Aufsicht.Aufsicht_ID abgesichert
Aufsicht.Personal_ID ist über eine Fremdschlüsselbeziehung auf Personal.Personal_ID abgesichert

Die Bedingung, ob ein Dozent oder ein Verwaltungsmitglied oder beide in einer Prüfung sitzen, kannst Du in einem Trigger oder der Anwendungslogik machen.

Wenn Du das zwingend in der Datenbank machen musst, musst Du die Datenbank anders aufbauen, dann ist sie aber nicht mehr normalisiert.
 
Der Aufwand für mehrere Tabellen erschließt sich mir nicht direkt. Wenn Du es nicht gerade mit überbordenden Personalmassen zu tun hast, reicht vielleicht auch eine simple flache Datenbank, in deren Aufsichtsfelder Namen über Wertelisten eingegeben werden.
 
Zurück
Oben Unten