У меня есть таблица в базе данных MySQL с магазинами и днями. Мне нужно проверить, открыт ли магазин в этот день.праздники в mysql для нескольких магазинов
Перед тем, как проверить, открыт ли магазин, следуя этому методу: Find next time business is open; mysql hours calculation Мне нужно проверить, находится ли магазин в какой-то праздник, прежде чем проверять, открыт он или нет.
ли хорошо иметь таблицу:
магазин ID | Дни
xxx | номер, номер, номер и т. д.
что запрос (написанный на PHP) проверяет, содержится ли [yday] в строке Days (строка значений, разделенных запятой)? Идентификатор магазина будет внешним ключом в таблице «Магазины», и приложение всегда будет знать заранее, какие магазины запускают этот запрос, а не наоборот.
Я до сих пор не нашел недорогого или элегантного решения на основе вычислений. Это может быть очень простой вопрос, но решения - это очень много, мне сложно анализировать различные проблемы с производительностью.
Edit 1
Учитывая также влияет на производительность запроса следующим образом, рассмотрев @GordonLinoff ответ как лучшее решение:
$ShopId = //a POST or GET
$day = //a POST or GET
$query = mysqli_query($con,"SELECT day FROM table WHERE ShopId = '$ShopId' AND day = $day");
if(mysql_num_rows($query)== 0){
echo "Shop open";
}
else{
echo "Shop closed";
}
mysqli_close($con);
Извините, если я воспользуюсь вашими знаниями. Когда создание таблиц в каждом магазине представляет проблему (скажем, тысячи магазинов)? Кроме того, почему бы мне создать индекс на обоих столбцах, а не только на день, ведь идентификатор магазина будет точно таким же на всей таблице. – user3132821
Вы будете создавать один стол, а не одну таблицу в магазине. –
Вы не создаете таблицы для каждого магазина. Вы создаете одну таблицу. Если вы не знаете о нормализации базы данных, я хорошо слышал о книге «Дизайн базы данных для простых смертных». –