eindeutige Zeitintervalle in DB

29/01/2010 - 15:15 von Peter Spahn | Report spam
Hallo,


ich der DB sollen datensàtze hinterlegt werden, die über einen Begin- und
End-Wert eine Zeit darstellen.

Die Datensàtze sollten sich zeitlich aber nicht überschneiden dürfen. Also
der Beginnwert des einen Datensatzes darf nie im Intervall eines anderen
liegen.

Wie kann man dies sicherstellen? Gibt es da ein intelligentes Verfahren?
 

Lesen sie die antworten

#1 Peter Fleischer
31/01/2010 - 22:10 | Warnen spam
"Peter Spahn" schrieb im Newsbeitrag
news:

ich der DB sollen datensàtze hinterlegt werden, die über einen Begin- und
End-Wert eine Zeit darstellen.

Die Datensàtze sollten sich zeitlich aber nicht überschneiden dürfen. Also
der Beginnwert des einen Datensatzes darf nie im Intervall eines anderen
liegen.

Wie kann man dies sicherstellen? Gibt es da ein intelligentes Verfahren?



Hi Peter,
nur die Prüfung des Anfangswertes reicht nicht aus. Auch der Endwert kann in
ein vorhandenes Intervall hineinragen.

Damit eine Überschneidung erkannt wird, muss zuerst abgefragt werden, ob ein
neuer Intervall im Konflikt mit vorhandenen Intervallen steht. Wenn nur auf
den Anfangswert geprüft werden soll, dann reicht im SQL die folgende
WHERE-Klausel:

... WHERE Beginnwert >= @par AND Endwert <= @par

wobei @par der Platzhalter für den zu prüfenden Anfangswert ist.


Viele Gruesse

Peter

Ähnliche fragen