par
Hubert Roksor » 08 mars 2006, 11:07
La structure en arborescence ("threaded" en VO) existe sur tous les forums récents à par phpBB, qui a juré de ne jamais proposer cette option.
En théorie l'idée peut sembler alléchante, mais en pratique c'est très difficile à lire, les utilisateurs ne savent pas s'en servir, ça nécessite une disposition spéciale de façon à systématiquement répondre à un post en particulier (impossible de simplement ajouter son post sans choisir de parent) et en règle générale c'est très mal implanté au niveau SQL.
En plus de tout ça, la gestion du topic dégénère de façon exponentielle à mesure que le nombre de posts augmente: très difficile à présenter à l'utilisateur, assez difficile à requêter auprès de la base. Pour le SQL, soit tu utilises des ensembles ("nested sets") et tu en baves à chaque insertion pour mettre à jour l'arbre, soit tu utilises un système de relation parent-enfant ("adjency list") et tu en baves pour obtenir la structure globale du topic ou d'une branche. D'une façon ou d'une autre, tu sais que tu vas en baver

(et je reste poli)
Voilà, j'ai fait ma B.A. en t'économisant de longues recherches infructueuse. Pas de liens désolé, il y a un tutorial sur l'arborescence SQL sur developpez.net et tu peux trouver d'autres infos en Googlant "Joe Celko" ou "Tropashko Farey" (très intéressant, mais un échec sur toute la ligne).
La structure en arborescence ("threaded" en VO) existe sur tous les forums récents à par phpBB, qui a juré de ne jamais proposer cette option.
En théorie l'idée peut sembler alléchante, mais en pratique c'est très difficile à lire, les utilisateurs ne savent pas s'en servir, ça nécessite une disposition spéciale de façon à systématiquement répondre à un post en particulier (impossible de simplement ajouter son post sans choisir de parent) et en règle générale c'est très mal implanté au niveau SQL.
En plus de tout ça, la gestion du topic dégénère de façon exponentielle à mesure que le nombre de posts augmente: très difficile à présenter à l'utilisateur, assez difficile à requêter auprès de la base. Pour le SQL, soit tu utilises des ensembles ("nested sets") et tu en baves à chaque insertion pour mettre à jour l'arbre, soit tu utilises un système de relation parent-enfant ("adjency list") et tu en baves pour obtenir la structure globale du topic ou d'une branche. D'une façon ou d'une autre, tu sais que tu vas en baver :lol: (et je reste poli)
Voilà, j'ai fait ma B.A. en t'économisant de longues recherches infructueuse. Pas de liens désolé, il y a un tutorial sur l'arborescence SQL sur developpez.net et tu peux trouver d'autres infos en Googlant "Joe Celko" ou "Tropashko Farey" (très intéressant, mais un échec sur toute la ligne).