0

j'ai une liste de dire courses et certificates et fun_days. Ceux-ci sont tous appelés objects. Chaque objet a ses exigences object_requirements. Une exigence peut être l'un des objects ou plusieurs d'entre eux.Comment puis-je créer un 'arbre' multi-hiérarchique? (S'il peut s'appeler un arbre)

Vous pouvez prendre toute objectsansobject_requirements comme starting point. "Tout le monde est autorisé à avoir ces objets."

Il se pourrait que:

  • Introduction_course est un point de départ (sans exigences)
  • Introduction_certificate peuvent être obtenus par ceux qui ont Introduction_course (ce course est une exigence de cette certificate)
  • Funday_swimming peut être obtenu par ceux qui ont un Introduction_certificate (le certificat est une exigence du fun_day). Y at-il un moyen de créer une représentation visuelle du flux hiérarchique ou quelque peu structuré de ce système?

L'exemple est assez simple, mais plusieurs exigences dans l'arbre devraient être possibles.

Voici comment je stocke les exigences:

TABLE: OBJECT_REQUIREMENT 
OBJECTTYPE    (pk) 
OBJECTID     (pk) 
REQUIREMENT_OBJECTTYPE (pk) 
REQUIREMENT_OBJECTID  (pk) 

TABLE: COURSE 
OBJECTID     (pk) 
OBJECTTYPE      // value is always [1] for course 

TABLE: CERTIFICATE 
OBJECTID     (pk) 
OBJECTTYPE      // value is always [2] for certificate 

TABLE: FUN_DAY 
OBJECTID     (pk) 
OBJECTTYPE      // value is always [3] for fun_day 

Oh et j'utilise PHP et MySQL. Mais tout logiciel pouvant générer ces représentations visuelles serait plus que bienvenu!

Répondre

2

Vous pourriez envisager quelque chose comme un graphe orienté, auquel cette question précédente SO pourrait être utile:

How to do directed graph drawing in PHP?

+0

Juste la chose dont j'avais besoin! Va regarder dans l'interface GraphViz dans PEAR – Ropstah

0

Vous pouvez utiliser la balise <li>, donc:

  • Introduction_course
    • Introduction_certificat
      • funday_swimming
    • Un autre certificat

Si vous essayez de le montrer en html. Si vous voulez quelque chose de plus graphique, vous pouvez utiliser des fichiers svg ou des balises canvas (en html5) pour dessiner le graphe, ou simplement utiliser lib_gd pour dessiner un bitmap, et en faire un imagemap, si nécessaire.