Partage
  • Partager sur Facebook
  • Partager sur Twitter

Base de donnée messages, commentaire

    22 mars 2011 à 15:57:18

    Bonjour,

    pour mon site, je désire intégrer une section message, commentaire, like.

    je me demande si je doit faire une seule table Message avec des champs message, commentaire et like ou bien 3 tables distincts

    Quels sont les avantages et inconvénients de ces 2 possibilité
    • Partager sur Facebook
    • Partager sur Twitter
      22 mars 2011 à 16:01:06

      3 tables distinctes. Sinon tu vas répéter des informations pour rien, ou faire des champs foireux compliqués à récupérer.
      • Partager sur Facebook
      • Partager sur Twitter
        22 mars 2011 à 16:20:34

        Sauf que si je fais 3 bases de données, je vais être obligé de parcourir toute la base de donnée des commentaires et des like pour afficher ceux qui se rapporte a un commentaire.

        Imaginons que j'ai:
        1000 000 messages dans la BD Message
        10 000 000 commentaire dans la BD Commentaire
        100 000 000 like dans la BD Like.

        À chaque fois que je veux vais vouloir afficher un message (ex: message_id 5000), je vais être obligé de parcourir ma grosse BD de like et de commentaire pour trouver ceux qui ont (un message_id=500)

        Cela me semble être trop couteux en capacités, surtout si je dois afficher plusieurs messages dans la même page
        • Partager sur Facebook
        • Partager sur Twitter
          22 mars 2011 à 16:23:46

          Bon, déjà, c'est 3 tables, pas 3 bases...

          Ensuite, pas du tout. Mais alors pas du tout... Déjà, tu mets des clés étrangères sur tes message_id dans la table like et la table commentaire, ça garantira l'intégrité de tes données, et optimisera les requêtes.
          • Partager sur Facebook
          • Partager sur Twitter
            22 mars 2011 à 16:40:45

            Quand tu dis pas du tout, tu veux dire que ça ne va pas devenir lourd avec de grosses données? (je m'attend a beaucoup de commentaire et de like)

            Mais il me semblais que les clés étrangères posent problème dans le cas de MySQL. D'ailleurs je travaille avec MySQL workbench et je n'ai pas l'option de clé étrangère.
            • Partager sur Facebook
            • Partager sur Twitter
              22 mars 2011 à 16:43:27

              Suffit de faire des tables avec le moteur InnoDB au lieu de MyISAM (qui est le moteur par défaut).
              Je connais pas MySQL Workbench, mais j'utilise beaucoup MySQL et on peut utiliser les clés étrangères sans problème.

              La seule conception correcte, c'est de faire 3 tables. N'importe quelle autre conception finira par te poser problème.
              • Partager sur Facebook
              • Partager sur Twitter
                22 mars 2011 à 16:53:17

                Ok merci pour tes conseils je vais donc en faire 3.

                C'est quoi la différence entre InnoDB et MyISAM.

                J'ai toujours utilisé MyIsam. et j'imagine que si j'opte pour Innob je vais devoir changer toutes les autres tables en innodb.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 mars 2011 à 17:06:11

                  cool.

                  Dernière question: MyISAM ne gère pas les clé étrangères?

                  Parceque Inndb est plus rapide et ne gère pas le fulltext
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mars 2011 à 19:41:42

                    Juste une remarque :: MySQL Workbench travaille par défaut avec InnoDB et ajoute automatiquement les clefs étrangère quand tu es en mode conception graphique par DC
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Base de donnée messages, commentaire

                    × 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