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

PL/SQL Oracle Discussion :

Gestion d'ensembles et d'arbres dans Oracle


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Points : 24
    Points
    24
    Par défaut Gestion d'ensembles et d'arbres dans Oracle
    Bonjour à tous

    J'ai une question d'ordre conceptuel plus que technique.

    Le contexte :

    Il existe dans ma base deux tables qui me permettent d'associer des personnes entre elles mais aussi de qualifier cette association :

    Personne 1 est l'enfant de personne 2

    Pourquoi 2 tables ? Parce que l'une s'occupe d'associer les personnes sur un plan relationnel personel (ami de, parent de, ...) l'autre sur un plan professionel.

    Chaque personne possède un capital sympathie (appelé score).
    Ce capital est sur plusieurs niveau représentant l'importance de ce capital (A = capital faible, Z = capital élevè).
    Ce capital sympathie est "héritable" entre personnes en fonction du type d'association. Par exemple l'héritage du score sera plus important si c'est qqu'un de ma famille tandis qu'il le sera moins si c'est juste un ami.

    Le problème :

    Je dois pouvoir construire un structure autour de ces ensembles de personnes et faire hériter chacunes d'entre elles.

    J'ai déjà mis en oeuvre une première solution : je construis un arbre Naire qui me permet de calculer le score de la personne racine. Donc pour chaque personne je dois reconstruire l'arbre afin d'être sûr qu'elle soit la dernière personne à recevoir le score de ces feuilles et noeud. J'insiste sur le fait qu'il m'est impossible de garantir l'héritage pour une autre personne que la racine.

    Mon problème est que les associations se multiplient et rendent la constructions de l'arbre très couteuse (un ami, d'un ami, d'un parent, d'un patron, d'un ami, etc...). Mon premier réflexe serait de stocké les arbres afin de pas devoir les reconstruires MAIS qque chose me gêne : Lorsque je construis un arbre pour une personne racine, je dois aussi construire ensuite un arbre pour toutes les feuilles et noeud de l'arbre. C'est ça va vite devenir énorme est ingérable.

    La question

    N'existe t'il rien qui me permet, une fois l'arbre construit pour une personne et stocké dans une table, d'utiliser ce même arbre mais de changer la personne root sans pour autant devoir reconstruire l'arbre et le stocké.

    Je me rend compte aussi qu'il serait utile de pouvoir identifier les ensembles avec un id. Mais ce qui m'ennuye c'est que pour un même ensemble je peux avoir plusieurs arbre. Le fait de ne devoir stocker qu'un seul arbre et de le modifier après est alors très intéressante.

    ... j'ai peur de ne pas avoir été très clair et moi même je n'arrive pas à trouver de solution clair. J'ai beaucoup de mal à aborder le problème.

    Un grand merci pour ceux qui sont arrivés jusqu'ici

  2. #2
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello

    Sous Oracle tu peux utiliser les notions d'arborescence avec start with connect by prior. Et la fonction SYS_CONNECT_BY_PATH
    C'est expliqué dans la FAQ.

    En gros tu aurais ta table principale avec seulement le score de la personne, et il faudrait recalculer le score "hérité" avec cette fonctionnalité.

    Par contre ça m'étonnerait que tu y arrives du 1er coup
    Bon courage
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Points : 24
    Points
    24
    Par défaut
    Ok merci pour la réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. La gestion des chaines vides dans Oracle (et les autres SGBD)
    Par tchize_ dans le forum Décisions SGBD
    Réponses: 25
    Dernier message: 28/10/2013, 17h50
  2. Problème avec le type BLOB dans oracle
    Par pguedia dans le forum Oracle
    Réponses: 1
    Dernier message: 10/11/2005, 17h33
  3. 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
  4. Insertion nouvelle vue dans oracle discoverer
    Par Jean-Matt dans le forum Oracle
    Réponses: 4
    Dernier message: 18/11/2004, 17h24
  5. Réponses: 3
    Dernier message: 27/10/2004, 14h43

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