Partage
  • Partager sur Facebook
  • Partager sur Twitter

mysql Clès étrangères multiples

Sujet résolu
    29 juin 2020 à 12:19:40

    Bonjour je suis débutant en sql et php et j'aimerai avoir votre avis sur un petit problème.

    Donc pour un projet je développe un logiciel de location de salle.

    Dans l'idée une réservation est associée à une ou plusieurs salle(s). Chaque salle est elle même associée a une ou plusieurs réservation(s). J'ai donc 2 tables: reservation et salle.

    J'aimerais stocker l'id d'une salle dans la réservation en tant que clé étrangère. L'idée serait que si une salle est supprimée ou un de ses champs vaut une variable particulière je puisse retrouvé rapidement les réservations associées. 

    Bref, actuellement je ne sais pas le faire avec un lien clair entre les 2 tables qui soit utilisable sur un simple select. Pour le moment je stock tous les id des salles dans un champ de la table réservation séparés avec des ; . Donc je dois select toute la table puis decouper sur le ; pour verifier si la salle est associé a cette réservation ou non.

    Du coup d'où ma question est t'il possible de faire un lien entre 1 réservation et toutes les salles associé ? si possible sans "copier-coller la réservation en changeant juste la colonne de la clé étrangère" (car j'ai pas mal d'autres colonnes pour une ligne de réservation) ?

    Je pense que c'est plus une histoire de structure/fonctionnement donc je n'ai pas mis de code.

    Merci d'avance pour vos réponses

    • Partager sur Facebook
    • Partager sur Twitter
      29 juin 2020 à 14:18:56

      Bonjour,

      SamuelLeGall a écrit:

      une réservation est associée à une ou plusieurs salle(s). Chaque salle est elle même associée a une ou plusieurs réservation(s)

      Cela s'appelle une relation n,n (many to many) et implique la création d'une table de relation. Ton modèle serait donc en 3 tables :

      • reservation ( id_reservation [pk], date, etc. )
      • salle ( id_salle [pk], nom, adresse, etc. )
      • reservation_salle ( id_salle [pk][fk], id_reservation [pk][fk] )

      Dans la table de relation, la clé primaire est composée par les 2 colonnes, et chacune est une clé étrangère vers la table de référence.

      Tu enregistres dans la table de relation chaque couple salle/réservation avec l'id de chacune.

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        29 juin 2020 à 14:30:06

        d'accord merci de ta reponse.

        • Partager sur Facebook
        • Partager sur Twitter

        mysql Clès étrangères multiples

        × 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