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
Partager