Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 организация хранения recurring периодов времени  [new]
Новенький_16_10_2012
Guest
Здравствуйте
Совсем запутался :)


Предметная область(упростил как мог):

Есть магазин.
У магазина есть часы работы.
Эти часы работы постоянные.
Пн - Чт: 08.00 -18.00
Пятница: 10.00 - 16.00
Суббота, Воскресенье - выходные
Чтобы максимально снизить нагрузку на базу - организовал хранение данных таким образом:

tbl_work_periods:

start(int),
end(int)

где start и end - это число от 0 до 7 * 24 * 60
эта логика у меня просто замечательно работает с recurring dates

но теперь появилась задача - работать не только с повторяющимися временными периодами, но и с уникальными
То-есть это должно работать так:
Магазин работает по указанному графику, но например 1 января 2013 года - магазин закрыт, а 8 марта - работает до 12.00(вне зависимости от того, какой день недели)

Это поломало всю мою схему
То-ли в туже таблицу писать эти даты как timestamp и добавить флаг - если это recurring или нет
То-ли отдельную табличку завести
Сижу, ломаю голову
Подскажите, куда копать
16 окт 12, 12:39    [13325798]     Ответить | Цитировать Сообщить модератору
 Re: организация хранения recurring периодов времени  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
проблема с самого начала вот в этом
Новенький_16_10_2012
У магазина есть часы работы.
Эти часы работы постоянные.

по уму вам надо переделывать архитектуру БД
а вообще это в соседний форум Проектирование БД
16 окт 12, 12:48    [13325877]     Ответить | Цитировать Сообщить модератору
 Re: организация хранения recurring периодов времени  [new]
Новенький_16_10_2012
Guest
Дедушка
проблема с самого начала вот в этом
Новенький_16_10_2012
У магазина есть часы работы.
Эти часы работы постоянные.

по уму вам надо переделывать архитектуру БД
а вообще это в соседний форум Проектирование БД


Я за переделать
Готов переделать
Только что и как переделать - вот в чем вопрос?
Я гототов отказаться от текущей архитектуры
Но это скорее еще один вопрос, чем ответ :)
16 окт 12, 12:52    [13325891]     Ответить | Цитировать Сообщить модератору
 Re: организация хранения recurring периодов времени  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Надо создать таблицу-календарь в дополнение к существующему графику работы.
С этой таблицей надо будет LEFT JOINиться для определения графика
по календарю (проиритет) или по-умолчанию.
16 окт 12, 12:53    [13325899]     Ответить | Цитировать Сообщить модератору
 Re: организация хранения recurring периодов времени  [new]
Новенький_16_10_2012
Guest
iap
Надо создать таблицу-календарь в дополнение к существующему графику работы.
С этой таблицей надо будет LEFT JOINиться для определения графика
по календарю (проиритет) или по-умолчанию.


Да, это первое что пришло в голову
Но заподозрил, что это криво
Готов внести больше изменений - если понадобится, лишь бы решение было оптимальным
Или это оптимальное решение?
16 окт 12, 12:55    [13325916]     Ответить | Цитировать Сообщить модератору
 Re: организация хранения recurring периодов времени  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
iap
LEFT JOIN
Это только скрыть можно. Или там будет дата переноса?
Типа этот панидёрниг будет батрачить в субботу?
16 окт 12, 15:49    [13327589]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить