В частности, я имею дело с медленно изменяющимся измерением типа 2 , и мне нужно представить временной интервал, в течение которого была активна конкретная запись, т.е. для каждой записи у меня есть StartDate и EndDate . Мой вопрос заключается в том, использовать ли закрытый ( [StartDate, EndDate] ) или полуоткрытый ( [StartDate, EndDate) ) интервал для представления этого, т.е. включать ли последнюю дату в интервал или нет. В качестве конкретного примера предположим, что запись 1 была активна с 1 по 5 день, а с 6 дня и далее стала активной запись 2. Сделать EndDate для записи 1 равной 5 или 6?
Недавно я пришел к мысли, согласно которой полуоткрытые интервалы лучше всего основаны, среди прочего, на Дейкстра: Почему нумерация должна начинаться с ноль , а также соглашения о нарезке массива и функции range () в Python. Применяя это в контексте хранилища данных, я бы увидел следующие преимущества соглашения о полуоткрытом интервале:
Поэтому я бы предпочел использовать методологию полуоткрытого интервала. Однако, если бы существовала какая-то широко принятая в отрасли конвенция об использовании метода замкнутых интервалов, то я мог бы склониться к этому, особенно если он основан на практическом опыте реализации таких систем, а не на моем абстрактном теоретизировании.
Заранее спасибо за любые идеи или комментарии.