2011-09-04 3 views
0

У меня есть база данных с магазинами, и я бы хотел добавить их часы работы (время начала - время окончания с понедельника по воскресенье). Время работы может быть любым значением (инкрементом 15 минут).База данных MySQL> Хранение> Часы работы магазина

У меня есть таблица для магазинов (1), таблица в течение нескольких дней (2) и таблицу для открытия часов (3):

(1) магазин стол: shop_id; ...

(2) день таблица: day_id; day_text

(3) рабочие часы таблица: shop_id; day_id; start_time; finish_time, где start_time это время и finish_time этого время

Должен ли я создать четвертую таблицу в течение нескольких часов таких как hour_id; hour_time (инкременты 15 минут)

У меня есть несколько миллионов данных, поэтому я ищу эффективный способ сделать это, поэтому запросы на поисковые магазины, открытые в этом районе, быстро выполняются.

+0

Я не уверен, что вы здесь задаете ... Не могли бы вы изменить вопрос, чтобы выяснить ваш реальный вопрос? –

+0

Какую базу вы используете? – gview

+0

@ davidWolever: я сделал это более ясным – julienp

ответ

0

Да - ваш подход кажется правильным.

Вы также можете заботиться о странных «днях», как праздники, которые меняют часы.

это может быть хорошим как таблица стиля исключения с датой и часами в магазине. то вы должны проверить «нормальные» часы и переопределить, если была специальная дата.

+0

Спасибо. Это именно то, что я сделал, таблица исключений, которая имеет приоритет в таблице рабочих часов. – julienp

+0

Как вы справляетесь с этим, когда магазин открыт до полуночи и закрывается утром (например, бар), который открыт с 22:00 до 04:00? – Julien

+0

Я полагаю, вы могли бы иметь open_date и open_time и close_date и close_time в вашей таблице open_hours ... – Randy

Смежные вопросы