Hello,
nimm den neuen Datensatz,
davon den Starttermin S
suche Datensätze in der Datenbank, deren Starttermin kleiner ist als S
und deren Endtermin größer sit als S
gibt es welche? Dann größten Endtermin davon feststellen
dieser wird der früheste Starttermin S werden können
davon den Endtermin E
suche Datensätze in der Datenbank, deren Starttermin kleiner ist als E
und deren Endtermin größer ist als E
gibt es welche? Dann kleinsten Starttermin davon feststellen
dieser wird der späteste Endtermin E werden können
|--------------| |----------------|
x--------------------x
S E
Das Ganze sieht aus, als sollte man dafür Stored Routines schreiben und als müsse man die Tabelle während der Inserts und Updates sperren gegen nebenläufige Prozesse.
Es wäre jedenfalls falsch, erst in einem Query abzufragen, ob es eine passende Lücke gibt, um dann im nächsten Query der Verbindung den Datensatz einzutragen. Da kann die Lücke schon durch ein Query einer anderen Verbindung verändert worden sein.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg