Ich muss sicherstellen, dass meine Datenbank nur Einträge enthält, bei denen zwei oder mehr ihrer Spalten eindeutig sind. Dies kann leicht mit einer UNIQUE
Einschränkung über diese Spalten erreicht werden.
In meinem Fall muss ich die Vervielfältigung nur für sich überschneidende Zeitbereiche verbieten. Die Tabelle hat valid_from
und valid_to
Spalten. In einigen Fällen kann es notwendig sein, zuerst den aktiven Eintrag auf abzulaufen, indem man , einstellt valid_to = now
und dann einen neuen Eintrag einfügt, der an valid_from = now
und valid_to = infinity
angepasst ist.
Ich scheine in der Lage zu sein, den vorherigen Eintrag ohne Probleme mit UPDATE
, ablaufen zu lassen, aber das Einfügen des neuen Eintrags scheint problematisch zu sein, da meine Basisspalten derzeit UNIQUE
, sind und daher nicht erneut hinzugefügt werden können
Ich dachte an das Hinzufügen valid_from
und valid_to
als Teil der UNIQUE
Beschränkung, aber das würde die Beschränkung nur lockerer machen und
duplikate und sich überschneidende Zeitbereiche existieren.