Gestion d'un hôtel

La direction d'un hôtel a choisi votre entreprise pour réaliser un logiciel qui va l'aider dans la gestion de ses affaires courantes, telles que les réservations de chambres ou la consommation de ses services.


Partie 1

Suite à un entretien avec le client, voici les besoins de base pour le nouveau logiciel de réservation pour un hôtel :

  • nous avons des clients, des chambres et des services
  • chaque client est identifié par son numéro de passeport, son téléphone et son adresse
  • chaque chambre est déterminée par son étage, son numéro, son prix et une description
  • chaque service est décrit par son nom, son prix, et la quantité disponible en stock

Pour le mode de fonctionnement, l'entretien conclu que :

  • quand un client réserve une chambre, on retient la date à laquelle a eu lieu la réservation, et les dates et heure d'arrivée et de départ du client
  • un client peux consommer divers services durant son séjour, on devra alors noter la date de la consommation du service, et la quantité commandée


Exemples d'utilisation (user stories) :

  • Le 2 avril 2020, Mr Bernard a réservé la chambre B4 du 20 avril 2020 au 27 avril 2020. Pendant son séjour il a consommé 3 sodas, 2 snacks, 1 service de pressing
  • Mme Durand est restée 4 jours dans une chambre à 60€. Elle n'a rien consommé
  • Le client de la chambre A6 souhaite 2 coupes de champagne, mais il n'y en a plus en stock


Sur la base de ces informations, concevez un MCD puis un MLD adéquate.


Partie 2

Suite a des discussions plus approfondies avec la direction de l'hôtel, nous devons ajouter différents éléments à notre future base de données. Le système devra gérer les employés, leur postes, et leur interactions avec les clients.

Tout d'abord, nous avons trois types d'employés : des managers, des serveurs, et des agents d'entretien. Les managers gère les clients, les serveurs s'occupent des consommations, tandis que les agents d'entretien nettoient les chambres.

Chaque employé, devra donc être identifié par son poste au sein de l'hôtel, en plus de son nom et de son prénom.

On devra pouvoir avoir un suivi des interactions entre les différents travaux de chaque employé, sachant que :

  • un manager peut gérer plusieurs clients, mais un client peut être géré par plusieurs manager. Les managers ne travaillent pas tous les jours, il faudra donc savoir quel client est géré par quel manager chaque jour.
  • une chambre sera nettoyée par un agent d'entretien, mais tous les agents d'entretien peuvent nettoyer toutes les chambres. Il suffira donc de noter quel agent à nettoyer quelle chambre, à quel heure et quel jour, et laisser une observation possible sur l'état de la chambre
  • chaque consommation est servie par un employé, il faudra savoir lequel en est responsable


Partie 3

Le comptable de l'hôtel ayant entendu parler du projet de refonte du système d'information, celui-ci est intéressé pour intégrer la gestion des factures et des commandes au sein du nouveau système.... Qu'a cela ne tienne !

On met donc en place de nouvelle règles de gestion, afin de pouvoir intégrer correctement les nouvelles demandes :

  • il faut rajouter la notion de fournisseur. Ceux-ci sont définis par leur raison sociale, leur nom commercial et leur adresse. Il faudra rajouter la notion de délai de livraison aussi, et les possibles réductions négociées. Tous les services proposés par l'hôtel sont fournis par un fournisseur.
  • bien entendu, lorsqu'un produit est en rupture de stock, un employé pourra passer commande. Il faudra au moins la date de la commande, la date de livraison prévue, le statut (en cours de livraison/livré) et les informations de facturation (quantité, prix ht, prix ttc)
  • de plus, chaque réservation des clients fera office d'une facture émise par l'hôtel, qui permettra de retrouver le montant total du séjour pour le client. Une facture sera déterminée par une date, les montant ht et ttc et une observation possible, en plus des couts liés à la réservation (nuitée + consommations)


Partie 4

Une fois que votre MLD est fini, implémentez votre base de données dans phpMyAdmin, avec un souci particulier sur le nommage et le typage de vos champs. N'hésitez pas à revoir un peu votre MLD si besoin. Essayer d'avoir des champs qui collent avec une certaine réalité (taille des entiers, types de date/heure, ajout de champs techniques type created_at, updated_at), vous pouvez essayer des types plus exotiques type ENUM ou booléen. N'oubliez pas de faire des backup régulière de votre structure. Et n'oubliez pas les clés primaires et étrangères surtout ! Certaines tables méritent peut-être des couples ou des trios de clé primaires afin d'éviter toutes ambiguïtés peut être ?

Une fois que cela vous parait fini, commencez à remplir des données pour voir si vos contraintes sont bien respectées. Nous essaierons de faire quelques requêtes SQL par la suite, afin de commencer à exploiter notre base de données.