Mysql
 sql >> база данни >  >> RDS >> Mysql

Ефективно определяне дали даден бизнес е отворен или не въз основа на работното време на магазина

Ако сте готови да гледате само една седмица наведнъж, можете да канонизирате всички часове на отваряне/затваряне, за да зададете минути от началото на седмицата, да речем неделя 0 часа. За всеки магазин създавате определен брой кортежи от формата [startTime, endTime, storeId]. (За часове, които се простират в полунощ в неделя, ще трябва да създадете две кортежи, едната отиваща до края на седмицата, едната започваща в началото на седмицата). Този набор от кортежи ще бъде индексиран (да речем, с дърво, което бихте обработили предварително) както в startTime, така и в endTime. Кортежите не трябва да са толкова големи:има само ~10k минути на седмица, които могат да се поберат в 2 байта. Тази структура би била изящна в MySQL таблица с подходящи индекси и би била много устойчива на постоянно вмъкване и изтриване на записи при промяна на информацията. Вашата заявка ще бъде просто „изберете storeId, където startTime <=time and endtime>=time“, където времето е канонизираните минути от полунощ в неделя.

Ако информацията не се променя много често и искате търсенето да е много бързо, можете да разрешите всяка възможна заявка предварително и да кеширате резултатите. Например, има само 672 четвъртчасови периода на седмица. Със списък с фирми, всеки от които имаше списък с часове на отваряне и затваряне като решението на Брандън Роудс, можете просто да преглеждате всеки 15-минутен период в рамките на една седмица, да разберете кой е отворен, след което да съхраните отговора в таблица за търсене или списък в паметта.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализирайте колоната въз основа на съвпадащи стойности в друга таблица в mysql

  2. Вземете данните за конкретен потребител в PHP

  3. SQLAlchemy/MySQL Загубена връзка с MySQL сървър по време на заявка

  4. Запазване на данни в PHP / Mysql с вградена редакция в CKEditor

  5. Транспониране на редове в заглавки в MYSQL