Bonjour,
J'ai développé une base de donnée basée sur une structure hiérarchique (l'application est développée sur un modele composite) et je cherche à résoudre plusieurs problèmes :
- Comment limiter au maximum la dépendance entre mes différentes tables : je veux pouvoir ajouter des noeuds intermédiaires facilement et également changer l'ordre de dépendance.
- Comment optimiser la performance d'une telle relation : création de vues ou simples jointures ?
La situation
------------
- toutes mes tables sont liées les unes autres par une relation parentID :
- on peut lier plusieurs tables à une seule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Table1 (idT1, desc) Table2(idT2, desc, ..., Table1ID) Table3(idT3, desc, ..., Table2ID) ... Table8(idT8, desc, ..., Table7ID)
Objectif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Table6(idT6,desc, ..., Table5ID) Table7(idT7,desc, ..., Table5ID)
----------
Limiter la dépendance :
J'aimerai, par exemple, ajouter facilement une tableX entre mes tables 2 et 3. Cela me demande donc d'effectuer quelques débranchements/rebranchements... ce que je cherche à éviter.
En clair, je cherche une solution pour externaliser l'ordonnancement de mes tables.
Une solution serait peut-être d'utiliser une table de gestion "OrdreTable" dans laquelle on aurait les champs :
id, parentID, table_name
Cette table contiendrait donc les différentes relations entre tables, exemple :
Et dans chacune des tables on aurait un champ "parentId" (champ qui pointe sur la table définit par "OrdreTable")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1, NULL, Table1 2, 1, Table2 3, 2, Table3 4, 2, Table4 (ici j'attache ma Table4 à la table2) ...
Cela dit, je ne sais pas si c'est la meilleure solution.... d'où mon message.
Merci d'avance
edit : un internaute évoque ce problème (sans solution) : http://forums.mysql.com/read.php?125...741#msg-154741
(différence : je ne gère pas les champs "child" mais le problème est le même)
il existe des tutoriaux sur ce fameux modèle "data-driven join table" ?
Partager