Как организовать хранение сезонного промежутка времени Mysql?
Стоить задача в mysql хранить записи по определенным промежуткам времени.
Например
period | data
Период с 01.01(01 - 1 дней; 01 - января) по 31.04 (31 - 31 дней; 04 - апрель) | данные
Период с 01.05 по 31.04 | данные
ну и т.д
В каком формате будет правильно сохранить period в базе данных mysql?
Период нужен, чтобы каждый последующий год применялись одни и те же данные. То, что вы предлагаете, приведет к постоянному обрезанию года, после чего придется еще высчитывать переход между годами, например если период будут 01.12 - 01.02. Что, на мой взгляд как-то не оптимально. Вот хотелось услышать ответ, как это это сделать оптимальнее, чтобы потом пришлось совершать поменьше действий.
Например у меня есть цены на отель которые увеличиваются или уменьшаются в зависимости от периода.
То есть с 1 января и по 1 февраля это цена 3000р. а с 2 февраля по 1 апреля это цена 4000р. и т.д. И эти цены не меняются на протяжении например 5 лет.
Период нужен чтобы каждый последующий год применялись одни и те же данные. То что вы предлагает перевидят к постоянному обрезанию года, после чего придется еще высчитывать переход между годами, например если период будут 01.12 - 01.02. Что на мой взгляд как то не оптимально. Вот хотелось услышать ответ как это это сделать оптимальнее чтобы потом пришлось совершать поменьше действий.
Если точка применения -- туры, не проще ли завести табличку сезонности, где поля типа: Название, дата начала, дата конца и т.д. и в основной таблице предложений указывать идентификатор этого сезона.
Хранить дату в поле типа DATE, год указать 1900 какой-нибудь, или любой другой милый вам. При запросах придется костылезироваться заменой текущего года на 1900 или 1901. Это можно, как правильно пишет @Mandor встроить в SQL.
@BugIg ну вы можете вбить в эту таблицу даты до конца света, это будет красивее, и можно будет на крайняк поменять. Можно триггер сделать, который раз в год будет увеличивать годы в этой табличке на 1.