Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zarządzać dostępnością pokoi w oparciu o dni lub miesiące zajętości?

Zachowaj listę rezerwacji pokoi, które mają datę początkową i końcową. Nie próbuj modelować przedziałów dostępności ani nie myśl o bazie danych rezerwacji jak o arkuszu kalkulacyjnym. To tylko doprowadzi cię do bezsensownej złożoności. Zakresy dat są łatwe w obsłudze.

Najważniejszą rzeczą, którą należy wiedzieć, jest to, jak wykryć nakładające się zakresy dat w zapytaniach. Jest to podstawa do sprawdzenia, czy pokój jest już zarezerwowany, czy jest wolny. Załóżmy, że masz stolik RESERVATION i chcesz znaleźć rezerwacje, które pokrywają się z podanym zakresem dat:@FromDate i @ToDate. Twoja klauzula WHERE dotycząca wyszukiwania pokrywających się rezerwacji wygląda tak:

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

Dostępne pokoje nie będą kolidowały (tj. GDZIE NIE MA...), a pokoje niedostępne będą miały konflikt.




  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 a MongoDB

  2. ap_pass_brigade nie powiodło się w funkcji handle_request_ipc

  3. Aktualizacja MySQL z wyborem z innej tabeli

  4. Klucz obcy MySQL podczas usuwania

  5. SQL, aby zdobyć znajomych ORAZ znajomych znajomych użytkownika