Devo assicurarmi che il mio database contenga solo le voci in cui due o più colonne sono uniche. Questo può essere facilmente ottenuto con un UNIQUE
vincolo su quelle colonne.
Nel mio caso, devo vietare la duplicazione solo per i periodi di tempo che si sovrappongono. La tabella ha valid_from
e valid_to
colonne. In alcuni casi potrebbe essere necessario prima di tutto scadere la voce attiva a impostando valid_to = now
, e poi inserendo una nuova voce regolata a valid_from = now
e valid_to = infinity
.
Sembra che io sia in grado di far scadere la voce precedente senza problemi di utilizzoUPDATE
, ma l'inserimento della nuova voce sembra essere fastidioso in quanto le mie colonne di base sono attualmenteUNIQUE
, e quindi non può essere aggiunto di nuovo
Ho pensato di aggiungere valid_from
e valid_to
come parte del UNIQUE
vincolo, ma questo renderebbe solo il vincolo più sciolto, e permetterebbe
duplicati e intervalli di tempo che si sovrappongono per esistere.