Как я могу создать многоиерархическое «дерево»?(Если это можно назвать деревом)

StackOverflow https://stackoverflow.com/questions/1647501

Вопрос

у меня есть список того, что можно сказать courses и certificates и fun_days.Все это называется objects.К каждому объекту свои требования object_requirements.Требование может быть одним из objects или несколько из них.

Вы можете взять любой object без object_requirements как starting point.«Каждому разрешено иметь эти объекты».

Так что это может быть так:

  • Introduction_course является отправной точкой (нет требований)
  • Introduction_certificate могут получить те, у кого есть Introduction_course (этот course это требование этого certificate)
  • Funday_swimming могут получить те, у кого есть Introduction_certificate (сертификат является обязательным требованием fun_day).

Есть ли способ создать визуальное представление иерархического или структурированного потока этой системы?Пример довольно простой, но в любом месте «дерева» должно быть возможно наличие нескольких требований.

Вот как я храню требования:

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

О, и я использую PHP и MySQL.Но любая часть программного обеспечения, которая могла бы генерировать эти визуальные представления, также была бы более чем желательна!

Это было полезно?

Решение

Вы можете рассмотреть что-то вроде ориентированного графа, для которого может быть полезен предыдущий вопрос SO:

Как нарисовать направленный график в PHP?

Другие советы

Вы можете использовать <li> тег, поэтому:

  • Введение_курс
    • Введение_сертификат
      • funday_swimming
    • Еще один сертификат

Если вы пытаетесь показать это в html.

Если вам нужно что-то более графическое, вы можете использовать файлы svg или теги холста (в html5) для рисования графика или просто использовать lib_gd для рисования растрового изображения и при необходимости превратить его в карту изображения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top