8 votes

Comment mettre en œuvre un système de commentaires imbriqués ?

Quelle serait la manière idéale de mettre en œuvre ce genre de chose ? L'idée que j'ai en tête en ce moment est d'avoir une table de commentaires et que chaque commentaire ait un identifiant de fil de discussion et un identifiant de commentaire parent. L'identifiant du fil de discussion indiquerait à quel fil le commentaire appartient et permettrait d'effectuer une simple déclaration MySQL à l'aide de la clause WHERE. Chaque commentaire aurait un identifiant à incrémentation automatique, comme c'est le cas habituellement dans les bases de données, et la colonne de l'identifiant du parent indiquerait de quel commentaire ce commentaire est l'enfant.

Ce type de conception mettrait l'accent sur l'aspect PHP des choses, car il suffirait d'un appel SQL pour obtenir tous les commentaires d'un fil de discussion. Une autre implémentation que j'ai trouvée consiste à avoir une requête SQL pour chaque niveau d'imbrication. Cette solution mettrait l'accent sur l'aspect SQL des choses.

Comment SO pourrait-il mettre cela en œuvre ? Actuellement, je suis perdu car je ne suis pas sûr de la "meilleure" solution et je suis encore assez novice en matière de conception de bases de données, de PHP et de JQuery.

Merci.

6voto

Brad Mace Points 12173

Regardez Gestion des données hiérarchiques dans MySQL et plus particulièrement la section intitulée "Nested Set Model". Il se peut que vous deviez le lire plusieurs fois avant de comprendre (c'est ce que j'ai fait), mais cela en vaut la peine. C'est un moyen très puissant de travailler avec des données imbriquées et de récupérer les parties que vous voulez avec une seule requête.

En revanche, pour les mises à jour, vous devez faire beaucoup plus d'efforts.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X