Bonjour à tous,

Je rencontre un petit souci sur un projet que je viens de démarrer. Je pense avoir une structure de base de données correcte mais je n'arrive pas à me décider pour un détail.

Le projet concerne un site de réservations de vols en mongolfière. Il y a plusieurs types de vols différents. Pour chaque type de vol, il y a une sélection de lieux donnés ainsi qu'un nombre de participants maximum et des tarifs dégressifs si on s'inscrit en groupe.
Mon problème concerne le fait que pour un de ces types de vol, il doit y avoir la possibilité d'inclure un tarif spécial enfant.

Mon schéma contient donc les tables suivantes :

  • 'Vol' avec un id, une référence (pour les paiements), le type de vol, la date, le lieu du vol, le nombre de places restantes, un booléen pour les options disponibles (vol cotier ou vol terrestre) et un autre booléen pour savoir si le vol est validé ou non.
  • 'type_vol' avec un id, un libellé et le nombre max de participants
  • 'lieu_vol' avec un id, un libellé et le type de vol
  • 'Tarif' avec un id, le type de vol, le nombre de passagers et le tarif par passager correspondant
  • 'Groupe_participants' avec l'id, l'id du vol et les participants stockés dans un tableau sérialisé

Je ne sais pas si mon schéma est bancal, il me semble correct, mais je ne vois pas où rajouter la notion de tarifs spéciaux.

Si vous pouviez m'aiguiller et me dire si je rate quelque chose, je vous en serai reconnaissant, merci :)

4 réponses


Grafikart
Réponse acceptée

Cela me semble correcte aussi vu les croisement de donnée que tu dois faire.

Khalysto
Auteur

Salut Graf', merci de ta réponse :)
Avant de l'accepter, pourrais tu me dire si la notion de tarifs spéciaux est à inclure dans la BDD ou si le traitement serait plus simple à faire en PHP ?

Hello,
Moi je l'ajouterais directement dans la table "Tarif" :
id, type de vol, nombres de passagers, tarif par passager, tarif enfant

Khalysto
Auteur

Bonjour @Blinkers,

J'aurai mis ce champ directement dans la base si tous les vols pouvaient bénéficier d'un tarif enfant, hors, il n'y a qu'un seul type de vol qui les acceptent...
Je pense que je ferai cette vérification directement en PHP pendant la validation des formulaires au final.

Merci de votre aide :)