Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jointure objet/personnage

    29 avril 2020 à 20:54:40

    Bonjours j’aurai besoin d'aide sur une requette sql

    avec cette base de donner

    objets (id_objet, nom, bonus_force, bonus_intelligence, prix)

    personnages(id_personnage, nom, niveau, force, intelligence, objet1,
    objet2, competence1, competence2, qte_or, guilde)

    si  je veux affichier les prix de l'objet1 de chaque personnages comment dois je proceder;

    -
    Edité par Benzouye 4 juin 2020 à 13:09:46

    • Partager sur Facebook
    • Partager sur Twitter
      30 avril 2020 à 5:12:00

      Il faut utiliser les JOINTURE : 

      https://sql.sh/cours/jointures

      Dans l'idée tu créer une tables tampon qui est un mix de tes deux tables, et tu sélectionnes les éléments qui t'intéressent.

      Bon après c'est un sujet à part entière. 

      Tu peux aussi utiliser les FOREIGN KEY : 

      https://fr.khanacademy.org/computer-programming/sql-create-table-with-foreign-key-reference/4700108318965760 

      Ca permet de vérifier que ton id_objet existe bien.

      • Partager sur Facebook
      • Partager sur Twitter
        4 juin 2020 à 13:07:20

        Bonjour,

        Déplacement vers un forum plus approprié

        Le sujet est déplacé de la section Autres sciences vers la section Base de données

        Sinon, lorsque tu commences à numéroter les noms de colonnes c'est qu'il y a sûrement un problème de conception.

        Dans ton cas, que va-t-il se passer si tu décides d'autoriser 3 objets, ou 4, ou 5 ... tu seras à chaque fois obligé de modifier la structure de ta base de données, et ce n'est pas maintenable ...

        Si tu as des objets et des personnages, et qu'un personnage peut posséder plusieurs objets et qu'un objet peut appartenir à plusieurs personnages, c'est une relation n,n et cela implique une table de relation.

        Ton modèle devrait être :

        • guilde ( id_guilde [pk], nom )
        • objet ( id_objet [pk], nom, bonus_force, bonus_intelligence, prix )
        • personnage ( id_personnage [pk], nom, force, intelligence, qte_or, id_guilde [fk] )
        • inventaire ( id_personnage [pk][fk], id_objet [pk][fk], ordre )

        Dans la table inventaire, la colonne ordre te permet de donner une position de l'objet du personnage dans son inventaire. Il est aussi intéressant de mettre une contrainte UNIQUE( id_personnage, ordre ) pour avoir plusieurs objets avec le même ordre pour un même personnage ...

        Pour retrouver l'objet 1 de tous les personnages :

        SELECT
            I.id_personnage,
            P.nom,
            I.id_objet,
            O.nom
        FROM
            inventaire I
                INNER JOIN objet O
                    ON I.id_objet = O.id_objet
                INNER JOIN personnage P
                    ON I.id_personnage = P.id_personnage
        WHERE I.ordre = 1

        -
        Edité par Benzouye 4 juin 2020 à 13:08:47

        • Partager sur Facebook
        • Partager sur Twitter
        Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

        Jointure objet/personnage

        × 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