hello je me pose la question d une modélisation "optimale" d une bdd de forum pour la performance. d abord y en a t Il une recommandée ? et Sinon que pensez-vous de cette modélisation? :

  • 1 table TOPICS qui contient tous les sujets (id, name, content, user_id, created, categorie_id, responsecount, resolved)
  • une table RESPONSES (id,content,user_id,created)
  • une table de liaison TOPICSRESPONSES (id, user_id, topic_id, response_id, trueresponse)
  • une table CATEGORY (id, name)

globalement est-ce que créer un système avec plutôt des table de liaison améliore les performances quand la bdd grossit? Et pour un forum est-ce que ma modélisation ci dessus vous paraît adaptée ou On peut mieux faire ? Merci d'avance.

3 réponses


Hello,

Je risque de répondre à côté, mais Grafikart à fait une vidéo sur la création d'un système avec Lu / Non Lu, où il explique un peu la structure qu'il a mis en place : http://www.grafikart.fr/tutoriels/divers/forum-lu-non-lu-590

Cela pourrait t'aider à y voir plus clair.

Hello PallMallShow, merci de ta réponse. Non pas totalement à côté :), je vais revoir cette vidéo que j'avais survolée il y a un moment et intéressant pour un système de notification.

Ma question est surtout sur la logique de l'organisation des tables pour la performance, sur un forum qui peut devenir gros. Est-ce que de ce point de vue, comme j'ai pu le lire ailleurs, scinder au maximum les information et les lier avec des tables de liaison c'est mieux ?

En théorie, plus tu va scinder, mieux se sera. Mais faut quand même pas abuser sur le nombre de scindage.
Simplement découper tes tables correctement :

  • categories
  • forums (Qui contiendra l'id d'une catégorie)
  • topics (Qui contiendra l'id du forum et l'id d'un user)
  • messages (Qui contiendra l'id du topic, ainsi que l'id user)
  • users

Avec ça déjà tu devrais avoir une bonne base de travail.