Pit: mysql: Redundanzen vermeiden oder nicht?

Beitrag lesen

Hallo Rolf,

Edit: Ich sehe gerade, wie haben gleichzeitig geschrieben... Insofern kenne/kannte ich Dein vor wenigen Minuten abgesendetes Post noch nicht, während ich das schrieb... ich geh mal lesen 😉

Dass ein User an einem Termin über die volle Strecke teilnimmt, wäre für mich die Normalsituation. In dem Fall setze ich die spezifischen Beginn/Ende-Felder für ihn auf NULL. Hat er einen spezifischen Teilnahmezeitraum, wird der eingetragen. Aus Sicht eines ER-Modells könnte man sich das vorstellen als eine m:n-Beziehungsklasse "UserTermin" mit einer Subklasse "UserTerminAbweichend" - oder so - die beide auf die gleiche DB-Tabelle gemappt werden.

Ich habe Dein Modell übernommen. Du hast recht, es vermeidet Redundanzen und durch ausNULLen der Start/End Spalte in der Teilnehmertabelle läßt es sich noch komfortabel abfragen.

  1. Irgendwie habe ich das Gefühl, dass ich hier als Entwickler einen Zielkonflikt verhindern muß. Entweder wird der Termin selber editiert. (In den allgemeinen Termindaten oder in Start/Endzeit.) Aber dann sollte keine Teilnehmer herausnehmbar oder hinzufügbar sein, der den Termin nicht zu 100% wahrnimmt. Oder es wird für einen (oder mehrere) User dieser Termin editiert, dann aber ausschließlich in Bezug auf Start/Endzeit (Edit: von mir aus auch innerhalb des allgemeinen Terminrahmens), nicht aber hierin und zudem in den allgemeinen Termindaten.

  2. Ich hadere ein bischen mit Fall 2, und zwar damit, wie ich eintragen soll, wenn ein User an einem Tag der 4-tägigen Konferenz nicht oder erst später teilnimmt. Zerhacke ich dann seine Teilnehmedaten (1 Eintrag in der Teilnehmertabelle) in tägliche Teildaten (4 Einträge in der Teilnehmertabelle) oder wie gehe ich das an? Zudem ist dieser User dann komplett aus dem Gruppentermin raus oder nur für diesen Tag?

Pit