Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/01/2013, 14h24   #1
daniel1985
Candidat au titre de Membre du Club
 
Homme
Inscription : mai 2012
Messages : 73
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2012
Messages : 73
Points : 10
Points : 10
Par défaut Extraction de l'arbre d'une commentaire

Bonjour à tous,

Dans mon site vidéo, j'ai sauvegardé les commentaires relative à chacun de ces vidéos dans une base MySQL. J'ai sauvegardé les commentaires dans une table ayant les colonnes :

id_comment | content | parent | Niveau

dont id_comment représente l'id du commentaire, content le contenu de ce commentaire, parent contient éventuellement l'id du commentaire parent s'il y-on a si non on'a une valeur NULL et Niveau correspond au niveau de cette commentaire dans cette arbre. La première commentaire a une niveau1 la deuxième niveau 2...

J'essai de déterminer pour chaque commentaire ses fils ou plutôt l'arbre qui le correspond.

Pensez-vous qu'il me faut ajouter d'autres colonnes ou bien en reposant juste sur ces colonnes ça sera simple de déterminer l'arbre mais dans plusieurs itérations ?

Toute information sera le bien venue et Merci d'avance.
daniel1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 18h03   #2
zeb_zed
Invité régulier
 
Homme
Développeur Java
Inscription : août 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : août 2012
Messages : 9
Points : 8
Points : 8
Salut,

Il y a plusieurs moyens pour gérer les commentaires, 4 moyens en fait, listés dans ce précédent post :
http://www.developpez.net/forums/d12...-base-donnees/

Ce que tu tentes de faire est la solution 1 : "adjacency liste"; le plus commun et simple de premier abord, chaque noeud contient l'id de son parent mais c'est également complexe à gérer et non performant.

Le mieux pour la gestion des commentaires est le "path énumération" : les chemins matérialisés. Tu trouveras de la doc à ce sujet en faisant quelques recherches Google.
C'est la solution la plus souple et performante pour la modélisation des commentaires, c'est d'ailleurs ce système qui est utilisé par Discus, une référence dans le genre.

Un bon article sur le sujet concernant Discus est ici :
http://justcramer.com/2012/04/08/usi...s-in-postgres/

PS: merci de faire un minimum d'effort sur la construction/orthographe des phrases
zeb_zed est déconnecté   Envoyer un message privé Réponse avec citation 21
Vieux 01/01/2013, 18h43   #3
daniel1985
Candidat au titre de Membre du Club
 
Homme
Inscription : mai 2012
Messages : 73
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2012
Messages : 73
Points : 10
Points : 10
Je vous remercie pour votre réponse et conseil . Donc, je vais utiliser le 'Path Enumeration' comme vous m'avez conseillé. Pour cela et si j'ai bien compris il me faut ajouter tout d'abord une colonne path a mes tables contenant les commentaires. Cette colonne contient le path de chacune des commentaires. Si j'ai 100 commentaires à une vidéo j'aurai normalement 100 path ayant de la form X/ (avec x entre 1 et 100).

Puis pour chacune des sous-commentaires j'aurai une path de la forme /X/Y/... Par exemple si j'ai deux commentaire ayant comme parent la commentaire numéro 5, ils auront respectivement les path 5/1/ et 5/2/

Si c'est bon, je vais commencer tout de suite à ajouter cette colonne à mes tables.

Merci d'avance !
daniel1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 18h53   #4
zeb_zed
Invité régulier
 
Homme
Développeur Java
Inscription : août 2012
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Java
Secteur : Conseil

Informations forums :
Inscription : août 2012
Messages : 9
Points : 8
Points : 8
Oui voila c'est le principe. Cette solution allie facilité d'utilisation, souplesse et performance.
zeb_zed est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/01/2013, 09h39   #5
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 101
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 101
Points : 21 734
Points : 21 734
Citation:
Envoyé par zeb_zed Voir le message
Le mieux pour la gestion des commentaires est le "path énumération" : les chemins matérialisés. Tu trouveras de la doc à ce sujet en faisant quelques recherches Google.
C'est la solution la plus souple et performante pour la modélisation des commentaires, c'est d'ailleurs ce système qui est utilisé par Discus, une référence dans le genre.
Ne confondez pas gestion de fichiers et SGBD Relationnel; la méthode par stockage de path pour une arborescence est loin d'être ce qui se fait de plus performant, car l'indexation d'un sous arbre est impossible. En sus elle n'élimine pas toutes les requêtes récursives nécessaires au traitement de l'arbre... et pour finir le respecte de l'intégrité référentielle est impossible !

Seule la représentation intervallaire avec ajout du niveau de profondeur dans l'arbre est efficace dans tous les cas (indexation et plus de requêtes récursive...)

Lisez les articles que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/s...te-recursives/
http://blog.developpez.com/sqlpro/p7...edure_de_derec
http://blog.developpez.com/sqlpro/p7...edure_de_depla
http://blog.developpez.com/sqlpro/p8...vallaire_proce

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h27.


 
 
 
 
Partenaires

Hébergement Web