Одним из способов решения этой проблемы является настройка таблицы, которая содержит все дни в виде значений DATE
.Примерно так:
CREATE TABLE MY_SCHEDULER (
SCHEDULED_DATE DATE PRIMARY KEY,
OWNER_ID NUMBER(8)
);
SCHEDULED_DATE
будет означать один день и будет храниться со временем в 00:00
.Целостность первичного ключа обеспечит невозможность вставки двух записей с одинаковым SCHEDULED_DATE
.OWNER_ID
- это ссылка на того, кто «владеет» этой датой.Учитывая, что переменные DATE
в Oracle имеют размер 7 байтов, а их число не слишком велико (максимум 22 байта), у вас не должно возникнуть проблем с хранением.100 лет дат будут иметь около 10 МБ!