¿Cómo puedo crear un 'árbol' multijerárquico?(Si se le puede llamar árbol)
-
22-07-2019 - |
Pregunta
tengo una lista de decir courses
y certificates
y fun_days
.Todos estos se llaman objects
.Cada objeto tiene sus requisitos. object_requirements
.Un requisito puede ser cualquiera de los objects
o varios de ellos.
Puedes tomar cualquier object
sin object_requirements
como un starting point
."A todo el mundo se le permite tener esos objetos."
Entonces podría ser que:
Introduction_course
es un punto de partida (sin requisitos)Introduction_certificate
puede ser obtenido por aquellos que tienenIntroduction_course
(estecourse
es un requisito de estecertificate
)Funday_swimming
puede ser obtenido por aquellos que tienen unIntroduction_certificate
(el certificado es un requisito delfun_day
).
¿Hay alguna manera de crear una representación visual del flujo jerárquico o algo estructurado de este sistema?El ejemplo es bastante simple, pero deberían ser posibles múltiples requisitos en cualquier parte del 'árbol'.
Así es como almaceno los requisitos:
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
Ah, y uso PHP y MySQL.¡Pero cualquier software que pueda generar estas representaciones visuales también sería más que bienvenido!
Solución
Puede considerar algo así como un gráfico dirigido, para el cual esta pregunta SO anterior podría ser útil:
Otros consejos
Puede usar la etiqueta <li>
, entonces:
- Introducción_curso
- Introduction_certificate
- funday_swimming
- Otro certificado
Si está intentando mostrarlo en html.
Si desea algo que sea más gráfico, puede usar archivos svg o etiquetas de lienzo (en html5) para dibujar el gráfico, o simplemente usar lib_gd para dibujar un mapa de bits y convertirlo en un mapa de imágenes, si es necesario .