Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > таблица для хранения диапозонов дат


Автор: chaos 23.5.2006, 09:06
Здрасте!!!
Помгоите люди добрые какой-нибудь идейкой. Необходимо придумать тублцу/таблицы для хранения диапозонов дат.
Например 
  • День рождение клиента
  • 13:00-14:00 по средам
  • 25.04.06 -26.04.06
  • 23:00-2:00
  • сб и вс
 

Автор: chief39 23.5.2006, 11:51
биллинг? smile

Можно бы в xml описать...

Но раз уж таблицы...

Надо продумать ВСЕ ВОЗМОЖНЫЕ варианты и составить список полей, которые некоторое свойство будут отображать.

Например:
startTime(начало ежедневного диапазона)
endTime(окончание ежедневного диапазона)
startDate(начало диапазона дат)
endDate(окончание диапазона дат)
WeekDay(день недели)
birthday(флажок, который указывает, что дату надо брать из дня рождения)
В общем случае некоторые(ненужные) поля - налловые
Сложные случаи можно держать в нескольких записях.

Это навскидку так...

Ещё подумаем 

Автор: Vit 23.5.2006, 15:39
Year - int (физический день года, если Null игнорировать)

Month - int (физический день месяца, если Null игнорировать, специальные дни месяца можно задавать в отрицательном диапазоне: 0 последний день месяца, -1..-7 последний понедельник..воскресенье месяца, -8 - последний рабочий день месяца, -9 последний выходной месяца, -10 первый выходной месяца, -11..17 - первый понедельник..воскресенье месяца, первый рабочий день месяца)

Week - int (день недели)

временные интервалы:
StartTime float 
EndTime float 

Stamp datetime - указание точного физического времени и даты 

Автор: chaos 8.6.2006, 16:35
Цитата(chief39 @ 23.5.2006,  11:51)
Ещё подумаем

подумали  smile  

Автор: Akina 8.6.2006, 17:33
"Все украдено еще до вас" (с)

Посмотри формат хранения crontab. Только тебе надо добавить время и хранить 2 записи - начало и конец.  

Автор: LSD 8.6.2006, 22:56
Я видел 2 достаточно универсальных структуры:
- из набора элементарных временных интервалов составляется смена, а уже из смен график работы (или чего у вас там)
- хранится битовая последовательность разрешений для каждой минуты (бит 0 или 1), для экономии места последовательность упаковывается RLE кодированием (дни рождений так конечно лучше не хранить, а вот график хождения можно) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)