TheRec
mercredi 17 mai 2006 à 21:21
Bonsoir,
Dans ta table sujet, tiens un compte des réponses...cela épargnera des ressources lorsque tu feras l'affichage de la liste de sujet (il faut penser que ce nombre devra être affichés à plusieurs endroits et souvent). C'est un conseil à part.
Concernant ton problème de tri, il est souvent résolu en ajoutant un champs à la table sujet "last_post_at" (dernier_message_a) qui correspond au dernier message...tenu à jour lorsque quelqu'un ajoute un message à un sujet...ainsi cela évite des requête superflues. Cela te permet aussi de distinguer les sujest ayant des réponses ou non...donc il faut autoriser le "NULL" et s'assurer que lorsque le dernier message d'un sujet est supprimé, le "NULL" est bien restauré.
Ensuite tu pourras trier tes sujets par date et par date de dernier message sans avoir à parcourir toute la table des réponses...
Cela peut paraître comme des entorses à la normalisation de ton schéma de base de données, mais cela a un impacte non-négligeable lors de la consultation massive (typiquement, un forum correspond à ce cas).
Tu peux regarder le schéma de plusieurs systèmes de forum, phpBB, PunBB, ... c’est une bonne source "d’inspiration"