Rolf B: mysql: Redundanzen vermeiden oder nicht?

Beitrag lesen

Hallo Pit,

du musst bedenken, dass die Attribute "Beginn" und "Ende" am Termin eine andere Semantik haben als an der "UserTermin" Beziehungstabelle.

Am Termin beschreiben sie den Termin.

In UserTermin beschreiben sie, in welchem Zeitraum der User am Termin teilnimmt. Das kleine Detail, dass ein Usertermin-Zeitraum nicht außerhalb eines Termin-Zeitraums liegen darf, kannst Du nicht gut in der DB modellieren.

Normalerweise speichert eine Termin-DB nur den Zeitraum eines Termins. Wer nicht teilnimmt, sagt ab (das ist der "Zusage-Status", der in UserTermin zu finden sein sollte). Wenn Du für die Termine-Sicht des Users X ermöglichen willst, dass er seine abweichende Teilnahmedauer angezeigt bekommt, brauchst Du Beginn und Ende an beiden Tabellen. In UserTermin sollten sie nullable sein, dann greift defaultmäßig der Zeitraum am Termin.

Rolf

--
sumpsi - posui - clusi