Voilà, pour une centrale de réservations, j'enregistre les disponibilités de chaque chambres pour chaque hotels pour chaque jours de l'année.
Lors de la recherche de disponibilité, je me retrouve donc avec une base de données de plusieurs centaines d'hotel, possédant chacun plusieurs type de chambre dont les réservations sont enregistrées par jour.
Donc une table avec énormément d'enregistrement et les recherches deviennent trop longues.
Alors une ptite question pour ceux qui pourrait m'aider à optimiser la partie SQL
Actuellement, il n'y a que 2 tables utiles (seuls les champs utils sont listés).
La table CHAMBRE avec comme champs
id_chambre int
nom_chambre text
(exemple de données :
1 | chambre lit simple
2 | chambre lit double
)
et la table RESERVATION
id_reservation int
date_reservation date (format YYYY-MM-DD)
chambre_reservation int (correspondant à CHAMBRE.id_chambre)
(exemple de données :
1 | 2006-07-05 | 1
2 | 2006-07-06 | 1
2 | 2006-07-05 | 2
)
Alors ce que je cherche à faire est simple mais je souhaiterais le faire si possible en une seule requête
A partir d'une date saisie par un utilisateur ($dDate) et le nombre de nuit où il va rester ($iNbNuits) je souhaiterais connaitres toutes les chambres etant disponibles pour toutes les dates de l'interval de temps.
Exemple
Si $dDate = '2006-07-05';
$iNbNuits = 4;
je souhaiterais connaitre toutes les chambres disponibles le 2006-07-05 ET le 2006-07-06 ET le 2006-07-07 Et le 2006-07-08
Le code php est fait, il ne me manque vraiment que la requete.
Actuellement j'ai cette requête
select * from reservation WHERE date_reservation >= '2006-07-05' AND date_reservation <= '2006-07-08'
Celle ci me ressort toutes mes chambres disponibles dans cet interval, certaines étant disponible qu'une nuit
Alors si quelqu'un a une idée :) je suis preneur