Création d'un forum de discussion

a marqué ce sujet comme résolu.

Bonjour, prochain projet pro => forum de discussion.

j’écume les ressources sur le sujet et j’avoue ne pas comprendre certains choix d’architectures de bdd…

exemple pour flarum

Dans la table discusion (thread) est stocké:

  • comment_count
  • participant_count
  • first_post_id
  • last_post_id, last_post_number et last_post_user_id

est ce selon vous de l’optimisation pour épurer les requêtes?

Dans la table post est stocké le numéro d’ordre (number) du post serait-ce aussi de l’optimisation? plutôt que de trier par le datetime de création?

je ne vous demande pas la vérité absolue, mais une discussion sur le sujet. Car ca me fait réfléchir. J’ai l’habitude de stocker le moins possible en base et de calculer/requêter, mais en effet, cela serait peut être plus optimisé de stocker quelques millions de caractères pour avoir des requêtes plus optimisées?

merci pour votre participation :)

+0 -0

Hello,

Ce dont tu parles c’est en fait de la dénormalisation. Et c’est effectivement pour des raisons de performances.

L’idée c’est que quand tu normalises un modèle de donnée, tu essayes d’avoir le modèle le plus pur possible, avec le moins d’information possible, et on peut trouver par le calcul, les jointures, etc. les infos qu’on veut.

Mais dans les faits, des fois ça devient trop lents. Typiquement le nombre de messages dans un thread. Lorsque tu affiches la listes des sujets, tu peux le faire avec une requête simple et efficace et afficher toutes les infos nécessaires (nombre de message, dernier post, date du dernier post, etc.)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte