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

Как да управлявате наличността на стаи въз основа на дни или месеци заетост

Поддържайте списък с резервации на стаи, които имат начална и крайна дата. Не се опитвайте да моделирате слотове за наличност и не мислете за вашата база данни с резервации като за електронна таблица. Това просто ще ви доведе до безсмислена сложност. С диапазоните от време се работи лесно.

Най-важното нещо, което трябва да знаете, е как да откриете припокриващи се периоди от време във вашите заявки. Това е основата за тестване дали една стая вече е резервирана или е свободна. Да приемем, че имате таблица РЕЗЕРВАЦИЯ и искате да намерите резервации, които се припокриват с даден период от време:@FromDate и @ToDate. Клаузата ви WHERE за намиране на припокриващи се резервации изглежда така:

WHERE RESERVATION.start_date < @ToDate 
  AND RESERVATION.end_date > @FromDate

Наличните стаи няма да имат конфликти (т.е. КЪДЕ НЕ В...), а недостъпните стаи ще имат конфликт.




  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. Как да импортирам SQL файл с помощта на командния ред в MySQL?

  3. Пуснете колона от голяма маса

  4. Прилага ли се MySQL LIMIT преди или след ORDER BY?

  5. Най-простият преход от MySQL към MySQLi