Как организовать хранение сезонного промежутка времени Mysql?

Стоить задача в mysql хранить записи по определенным промежуткам времени.

Например
period | data
Период с 01.01(01 - 1 дней; 01 - января) по 31.04 (31 - 31 дней; 04 - апрель) | данные
Период с 01.05 по 31.04 | данные

ну и т.д

В каком формате будет правильно сохранить period в базе данных mysql?

Период нужен, чтобы каждый последующий год применялись одни и те же данные. То, что вы предлагаете, приведет к постоянному обрезанию года, после чего придется еще высчитывать переход между годами, например если период будут 01.12 - 01.02. Что, на мой взгляд как-то не оптимально. Вот хотелось услышать ответ, как это это сделать оптимальнее, чтобы потом пришлось совершать поменьше действий.
  • Вопрос задан
  • 2821 просмотр
Пригласить эксперта
Ответы на вопрос 4
@Codebaker
Всё умею, всё могу!
create table periodic_data (
    period_from datetime,
    period_to datetime,
    data int);
Ответ написан
Комментировать
@BugIg Автор вопроса
Период нужен чтобы каждый последующий год применялись одни и те же данные. То что вы предлагает перевидят к постоянному обрезанию года, после чего придется еще высчитывать переход между годами, например если период будут 01.12 - 01.02. Что на мой взгляд как то не оптимально. Вот хотелось услышать ответ как это это сделать оптимальнее чтобы потом пришлось совершать поменьше действий.
Ответ написан
Комментировать
Mandor
@Mandor
Поле "месяц" и поле "день месяца" в двух экземплярах. Если вам не важны високосные года, то просто количество дней от начала года.

Всю логику попадания в промежуток и пересечения промежутков можно встроить в SQL.
Ответ написан
Комментировать
vasilyev
@vasilyev
php, 1c-bitrix
Если точка применения -- туры, не проще ли завести табличку сезонности, где поля типа: Название, дата начала, дата конца и т.д. и в основной таблице предложений указывать идентификатор этого сезона.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы