Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une clé étrangere pour 2 tables

    1 décembre 2011 à 22:17:02

    Bonjour,
    J'ai un petit soucis de conception pour une base de données (MySQL).
    Voici mes tables:
    VISIT:VISIT_ID,...
    POI:POI_ID,...
    CITY:CITY_ID,...

    La table POI a une clé étrangère vers CITY_ID.
    Mon problème est qu'une visite peut être un POI mais aussi une ville. Et je ne vois pas comment modéliser ça proprement.
    J'ai deux solutions, mais ca ne me semble vraiment pas propre:
    1) Créer une nouvelle table avec: NEW: ID, Table_Name, Object_ID. Ce qui permettrait de joindre cette table à VISIT, et de savoir si la visite est une ville ou un POI avec son ID. Avec cette méthode on perd un peu le modèle relationnel et on est obligé de faire 2 requêtes pour savoir ou se situe la visite.
    2) Créer une seule et unique table avec POI et CITY et ajouter une clé étrangère qui tape sur l'id de cette même table.

    J’espère avoir été le plus clair possible.
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2011 à 11:10:28

      Bon j'ai bien lu ce cours sur l'héritage, et je pense avoir trouvé une solution:

      VISIT: ID, ...
      City: ID_VISIT (clé étrangère vers ID de la table VISIT)
      POI: ID_VISIT (clé étrangère vers ID de la table VISIT), ID_CITY (seconde clé étrangère vers ID de la table VISIT)

      Cela vous semble correct?
      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2011 à 11:58:18

        Salut, je n'ai pas bien compris à quoi va te servir ID_CITY dans la table POI ? De plus Visit est devenu Lieu?
        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2011 à 17:19:51

          J'me penche un peu sur ton soucis et je me dis :

          Pourquoi tu as deux tables qui indiquent un endroit ?
          Pourquoi pas :

          Visite 1-n Lieu n-1 Nature_du_lieu


          Donne un peu de détail sur ton API stp, qu'on sache ce qui est spécifique, la différence entre un lieu et un POI (je ne sais pas ce qu'est un POI)
          • Partager sur Facebook
          • Partager sur Twitter
            2 décembre 2011 à 19:22:22

            @Angelo. Désolé c'est une erreur de ma part pour les noms. C'est modifié.

            J'ai 2 tables car en fait j'ai besoin d'avoir un endroit pour une visite. Cet endroit peut être une ville ou un POI (Point d’intérêt comme un monument, ou parc). Mais j'ai besoin de savoir en même temps, où se situe ce POI, dans quelle ville.
            C'est pour cela que j'ai créer une clé étrangère ID_CITY dans la table POI. Ainsi je peux savoir dans quelle ville se situe les POI.
            • Partager sur Facebook
            • Partager sur Twitter

            Une clé étrangere pour 2 tables

            × 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