Partage
  • Partager sur Facebook
  • Partager sur Twitter

MCD: Table de réservation

    19 mars 2019 à 20:46:24

    Bonjour,

    J'aimerais avoir plusieurs avis sur une analyse de gestion d'un club sportif, il y a 4 entités (Personne, Seance, Type de Sport, Paiement). Cet exercice n'est pas une leçon que je dois remettre, mais je me pose des questions sur un futur projet assez similaire.

    Donc nous avons 4 tables:
    - la première table est l'entité personne avec 3 champs id, nom, prenom
    - la seconde table est l'entité seance avec 4 fields id, date_seance, heure_debut, heure_fin
    - la troisième table s'intitule type de sport avec 3 champs id, type_sport, prix
    - le quatrième table se nomme paiement avec 3 champs id, date_saisie, mode_paiement

    Je suis bloqué sur un petit point, admettons qu'une personne (on va l'appeler Jeremy) suit 3 séances de Tennis le prix est de 10 € la séances par jour (c'est un exemple):
    le 01 04 2019 (date_seance) | 10:00 (heure_debut) | 12:00 (heure_fin)
    le 03 04 2019 (date_seance) | 10:00 (heure_debut) | 12:00 (heure_fin)
    le 04 04 2019 (date_seance) | 10:00 (heure_debut) | 12:00 (heure_fin)

    Dans mon formulaire (futur CRUD), j'aimerais entrer les 3 séances avec le montant total (donc 30 €) dans une seule et unique ligne d'enregistrement
    Je vois pas trop comment faire ça, car je bloque entre la table seance et le paiement.

    Qu'en pensez-vous? 

    D'avance merci

    http://zupimages.net/viewer.php?id=19/15/h4ew.png

    -
    Edité par Fred2000Fred2000 8 avril 2019 à 22:41:16

    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2019 à 8:50:39

      Bonjour,

      Passons sur ton titre plus que vague ...

      Fred2000Fred2000 a écrit:

      j'aimerais entrer les 3 séances avec le montant total (donc 30 €) dans une seule et unique ligne d'enregistrement

      Cela va à l'encontre des principes des bases de données relationnelles ... En stocker plusieurs informations sur un même enregistrement tu casses la forme normale d'atomicité (première forme normale) ...

      Si tu veux regrouper les paiements il faut créer une entité de regroupement, que l'on pourrait ici appeler "réservation", et qui pourrait s'intercaler entre personne et séance.

      Une réservation concerne une personne et une personne peut faire plusieurs réservations.

      Une séance est liée à une réservation et une réservation peut concerner plusieurs séances.

      Un paiement concerne une réservation, et une réservation peut avoir plusieurs paiements (paiement en plusieurs fois). Cette dernière cardinalité peut être adaptée si tu souhaites faire payer en une seule fois chaque réservation.

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        8 avril 2019 à 22:40:52

        Bonsoir,

        Merci pour ta réponse et tes explications... Je m'excuse pour le titre de mon sujet que je vais modifier incessamment sous peu.

        Pour revenir au sujet, je vais suivre ton conseil... Voici ci joint mon schéma qu'en penses-tu ? 

        Je n'arrive pas à l'uploadé directement sur le forum, je vais donc uploadé mon schéma sur l'hébergeur d'image zupimages.net.

        http://zupimages.net/viewer.php?id=19/15/h4ew.png

        Est-ce que cela te semble correct ? 

        Pour ce qui est de la table "reservation" dans mon formulaire PHP, je vois le truc ainsi:

        Table Réservation: 

        Nom_eleve | Prenom_eleve | Type_Sport_intitulé | Type_Sport_Prix | Nombre_Seance | Total 

        Dujardin | Nicolas | Tennis | 50 euros | 3 | 150 euros 

        -
        Edité par Fred2000Fred2000 8 avril 2019 à 22:42:14

        • Partager sur Facebook
        • Partager sur Twitter

        MCD: Table de réservation

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown