Ich will unser recht kompliziertes Schichtsystem neu modellieren.
Es gibt eine Tabelle "Schichtregime", die den Typ der Rotation festlegt (Vierschicht, Dreischicht, Tagschicht u.s.w.).
Dann gibt es eine Tabelle "Segment", das zu einem Regime die möglichen groben "Tagesschnippsel" auflistet (also für Vierschicht z.B. 4früh, 4spät und 4nacht, oder für Tagschicht eben nur Tag).
Dann habe ich eine Tabelle "Rotation", dass die Schichtgruppen innerhalb eines Regimes definiert (Vierschicht hat etwa A4 bis D4, Dreischicht hat A3 bis C3, Tag hat nur Day).
Danke, dass ihr bis hierher durchgehalten habt, denn jetzt kommt mein Problemkind: Die Tabelle "Calendar", die ein Datum, ein Segment und einen Rotation enthalten soll, also z.B. 01.01.2011, 4früh, B4 ("am 1.1. hat die Schichtgruppe B4 Frühschicht").
Wie kann ich nun sicherstellen, dass nur Segmente und Rotationen des gleichen Regimes kombiniert werden können? Sicher kann (und werde) ich das Programm entsprechend absichern, und ich könnte auch Trigger schreiben, aber wie sähe eine allgemeingültige, herstellerunabhängige und strukturelle SQL Lösung aus?
Es gibt eine Tabelle "Schichtregime", die den Typ der Rotation festlegt (Vierschicht, Dreischicht, Tagschicht u.s.w.).
Dann gibt es eine Tabelle "Segment", das zu einem Regime die möglichen groben "Tagesschnippsel" auflistet (also für Vierschicht z.B. 4früh, 4spät und 4nacht, oder für Tagschicht eben nur Tag).
Dann habe ich eine Tabelle "Rotation", dass die Schichtgruppen innerhalb eines Regimes definiert (Vierschicht hat etwa A4 bis D4, Dreischicht hat A3 bis C3, Tag hat nur Day).
Danke, dass ihr bis hierher durchgehalten habt, denn jetzt kommt mein Problemkind: Die Tabelle "Calendar", die ein Datum, ein Segment und einen Rotation enthalten soll, also z.B. 01.01.2011, 4früh, B4 ("am 1.1. hat die Schichtgruppe B4 Frühschicht").
Wie kann ich nun sicherstellen, dass nur Segmente und Rotationen des gleichen Regimes kombiniert werden können? Sicher kann (und werde) ich das Programm entsprechend absichern, und ich könnte auch Trigger schreiben, aber wie sähe eine allgemeingültige, herstellerunabhängige und strukturelle SQL Lösung aus?