Как мы моделируем эти объекты?
Сценарий 1: изменение цены за период времени
EffectiveDate ExpiryDate Price
2009-01-01 2009-01-31 800$
2009-02-01 Null 900$
Таким образом, если в 2009-02-15 цена изменится на 910 $, то система должна автоматически обновить дату истечения срока действия предыдущей действующей цены до 2009-02-14, чтобы она оставалась неизменной.
Сценарий 2: Цена не указана в период с 2009-02-01 по 2009-02-28
EffectiveDate ExpiryDate Price
2009-01-01 2009-01-31 800$
2009-03-01 Null 900$
Таким образом, если новая цена указана для 2009-02-15 и далее, то система должна автоматически установить дату истечения срока действия для вставляемой записи на 2009-02-28, поскольку уже запись вступает в силу с 2009-03- 01 существует.
Пожалуйста, предложите эффективный способ обработки этих сценариев для моделирования моей структуры, или есть какие-либо структуры, которые могут это сделать.
Спасибо