Как сделать уникальную запись в базе данных в промежутке времени?

имею таблицу Table_A где есть 2 столбца с данными Date, к примеру Date_from, Date_to и есть поле какого-то значения Val. Так вот я хочу чтобы это поле было уникальным в промежутке времени от Date_from до Date_to. Как можно это реализовать? Пример: у меня есть запись 1 с временем од 18:00 до 20:00 того же дня, со значением Val = 1. Я добавляю новую запись 2, с инным значение Val = 5, но в том же промежутке времени, и СУБД должна запретить это сделать и выбросить исключение.


Ответы (1 шт):

Автор решения: Aleksey Vaganov

Если интервалы не пересекаются, то можно добавить комплексный уникальный индекс по трем полям Date_from, Date_to, Val.

Если же интервалы пересекаются, то это задача не может быть решена на уровне базы данных. Это задача уровня приложения.

→ Ссылка