Hallo liebes Forum,
es geht um folgenden Sachverhalt:
In Meiner Datenbank gibt es Schüler, die eine eindeutige ID haben.
Dann gibt es Kurse, die eine eindeutige ID haben. Ein Kurs kann mehrere Schüler aufnehmen. Ein Schüler sitzt wiederum in einem oder mehreren Kursen.
Jeder Kurs kann außerdem auch eine oder mehrere Checklisten haben.
In diesen Checklisten sollen Daten wie z.B. "Zettel abgegeben/Zettel nicht abgegeben" bezogen auf den Schüler des Kurses eingetragen werden.
In meinem ER-Modell sieht das ganze daher so aus:
Folglich habe ich folgende Tabellen (FS steht für Fremdschlüssel):
Schueler(ID, ... )
Kurse(ID, ...)
Checklisten(ID, FS: Kurs.ID)
SchuelerSitztIn(ID, FS: Schueler.ID, FS: Kurse.ID)
SchuelerIstTeilVonCheckliste(ID, FS: Schueler.ID, FS: Checkliste.ID)
Nun zu meinem Problem:
In meinem Schema ist ja nun folgender Sachverhalt denkbar:
Schüler mit ID 1 sitzt in Kurs mit ID 22.
Zu Kurs mit ID 22 gehört die Checkliste mit ID 1234.
Schüler mit ID 1 ist Teil von Checkliste mit ID 1234.
Soweit in Ordnung.
Nun kann aber ja folgender Fehler passieren.
Schüler mit ID 1 sitzt NUR in Kurs mit ID 22.
Zu Kurs mit ID 22 gehört die Checkliste mit ID 1234.
Zu Kurs mit ID 66 gehört die Checkliste mit ID 5678.
Schüler mit ID 1 ist Teil von Checkliste mit ID 5678.
Die letzte Zeile steht nun aber im Widerspruch dazu, das der Schüler mit ID 1 NUR im Kurs mit der ID 22 sitzt.
Denn er ist ja Teil von Checkliste ID 5678 die widerum zu Kurs 66 gehört, in der der Schüler ID 1 aber gar nicht drin ist.
Mit ist die mögliche Inkonsistenz in meinem Modell klar, ich habe aber nun tagelang versucht, dieses Problem durch eine andere Modellierung zu lösen; es gelingt mir aber einfach nicht.
Ich hoffe irgendwer kann mir helfen.
es geht um folgenden Sachverhalt:
In Meiner Datenbank gibt es Schüler, die eine eindeutige ID haben.
Dann gibt es Kurse, die eine eindeutige ID haben. Ein Kurs kann mehrere Schüler aufnehmen. Ein Schüler sitzt wiederum in einem oder mehreren Kursen.
Jeder Kurs kann außerdem auch eine oder mehrere Checklisten haben.
In diesen Checklisten sollen Daten wie z.B. "Zettel abgegeben/Zettel nicht abgegeben" bezogen auf den Schüler des Kurses eingetragen werden.
In meinem ER-Modell sieht das ganze daher so aus:
Folglich habe ich folgende Tabellen (FS steht für Fremdschlüssel):
Schueler(ID, ... )
Kurse(ID, ...)
Checklisten(ID, FS: Kurs.ID)
SchuelerSitztIn(ID, FS: Schueler.ID, FS: Kurse.ID)
SchuelerIstTeilVonCheckliste(ID, FS: Schueler.ID, FS: Checkliste.ID)
Nun zu meinem Problem:
In meinem Schema ist ja nun folgender Sachverhalt denkbar:
Schüler mit ID 1 sitzt in Kurs mit ID 22.
Zu Kurs mit ID 22 gehört die Checkliste mit ID 1234.
Schüler mit ID 1 ist Teil von Checkliste mit ID 1234.
Soweit in Ordnung.
Nun kann aber ja folgender Fehler passieren.
Schüler mit ID 1 sitzt NUR in Kurs mit ID 22.
Zu Kurs mit ID 22 gehört die Checkliste mit ID 1234.
Zu Kurs mit ID 66 gehört die Checkliste mit ID 5678.
Schüler mit ID 1 ist Teil von Checkliste mit ID 5678.
Die letzte Zeile steht nun aber im Widerspruch dazu, das der Schüler mit ID 1 NUR im Kurs mit der ID 22 sitzt.
Denn er ist ja Teil von Checkliste ID 5678 die widerum zu Kurs 66 gehört, in der der Schüler ID 1 aber gar nicht drin ist.
Mit ist die mögliche Inkonsistenz in meinem Modell klar, ich habe aber nun tagelang versucht, dieses Problem durch eine andere Modellierung zu lösen; es gelingt mir aber einfach nicht.
Ich hoffe irgendwer kann mir helfen.