sql >> Database teknologi >  >> RDS >> Mysql

Sådan administrerer du ledige værelser baseret på dages eller måneders besættelse

Hold en liste over værelsesreservationer, der har en startdato og en slutdato. Forsøg ikke at modellere tilgængelighedspladser eller tænk på din reservationsdatabase som et regneark. Dette vil blot føre dig til meningsløs kompleksitet. Datointervaller er nemme at arbejde med.

Den vigtigste ting at vide er, hvordan man registrerer overlappende datointervaller i dine forespørgsler. Dette er grundlaget for at teste, om et værelse allerede er reserveret, eller om det er gratis. Lad os sige, at du har en RESERVATIONstabel, og du vil finde reservationer, der overlapper et givet datointerval:@FromDate og @ToDate. Din WHERE-sætning til at finde overlappende reservationer ser sådan ud:

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

Tilgængelige lokaler vil ikke have konflikter (dvs. WHERE NOT IN...), og utilgængelige lokaler vil have en konflikt.




  1. SQL Server-ækvivalent til substring_index-funktion i MySQL

  2. Tilslutning af en Bastion Server til en PostgreSQL Server via SSH Tunnel

  3. Laravel 5 database problem

  4. (Android) Find stien /Android i internt lager