IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Extraction de l'arbre d'une commentaire


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    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 : 175
    Points : 64
    Points
    64
    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.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    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 : 9
    Points
    9
    Par défaut
    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

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    175
    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 : 175
    Points : 64
    Points
    64
    Par défaut
    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 !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    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 : 9
    Points
    9
    Par défaut
    Oui voila c'est le principe. Cette solution allie facilité d'utilisation, souplesse et performance.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [XML] extraction directe de données d'une BDD
    Par MicKCanE dans le forum XQUERY/SGBD
    Réponses: 7
    Dernier message: 04/09/2006, 13h01
  2. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 13h24
  3. Arbre dans une liste
    Par fred1976 dans le forum Access
    Réponses: 1
    Dernier message: 10/01/2006, 21h19
  4. Modélisation d'un arbre dans une base de données
    Par compu dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 11/04/2005, 18h29
  5. Extraction de sous-chaine dans une chaine
    Par ma2th dans le forum C
    Réponses: 7
    Dernier message: 07/05/2004, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo