Bonjour à tous,
J'espère être dans la bonne section. Je suis novice en sql. J’ai un projet à réaliser comportant beaucoup de données et je suis un peu dépassé . Je me permets de venir vers vous pour quelques conseils..
Il s’agit de réservation en ligne de chambres d’hôtels.
Il faut compter environ 150 chambres référencées sur le site dans un premier temps.
Chacune de ces chambres comporte plusieurs caractéristiques comme leur situation géographique en France, le type de chambre dont il s’agit, la vue etc.
Les internautes devront pouvoir effectuer des recherches de chambre, leurs critères (en dehors des caractéristiques énoncés plus haut) seront également la date de disponibilité et le prix maximum.
Les propriétaires des chambres, eux, pourront ajuster leurs tarifs à leur convenance en fonction des dates via un outil d’administration. En gros, ils auront accès à un calendrier correspondant à chaque chambre et à chaque nuit correspondra un prix potentiellement différent.
Du coup, hormis une première table chambres dont chaque nouvelle entrée serait une nouvelle chambre et qui référencerait les caractéristiques fixes comme le type de chambre, la situation géographique etc. je pensais créer une table calendrier par chambre (calendrierChambre1, calendrierChambre2, calendrierChambre3 etc.). Dans ces tables calendrier figurerait les jours des 5 prochaines années en tant qu’id unique des différentes entrées, et comme autre champs : tarif (avec le tarif du jour), resa (avec un id de réservation si la chambre n’est plus libre), puis une table référençant toutes les réservations.
Ce qui m’inquiète, c’est la requête côté internaute, car celle-ci va devoir se faire sur 150 tables différentes (dans un premier temps), comportant chacune 1825 entrées (365 jours x 5 ans). En même temps, si je décide de ne faire qu’une table référençant toutes les dates, je vais devoir fouiller dans un nombre incalculable d’entrées, ce qui me parait être de la folie aussi… Sinon, j’avais pensé placer un tableau dans un champ dates de ma table chambres dans lequel j’aurais placé la même chose que dans mes différentes tables calendrier (j’aurais ainsi eu une unique table mais avec une troisième dimension). Le problème c’est qu’avec une requête sql je ne peux pas lire à l’intérieur d’un tableau…
Qu’en pensez-vous ? Est-ce qu’il y a beaucoup plus simple et que je m’y prends mal ? Est-ce juste un gros projet et difficile de faire autrement ?
Merci par avance pour vos avis !
Partager