Как я могу создать многоуровневое «дерево»? (Если это можно назвать деревом) - PullRequest
0 голосов
/ 30 октября 2009

У меня есть список, скажем, 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. Но любое программное обеспечение, которое может генерировать эти визуальные представления, также будет приветствоваться!

Ответы [ 2 ]

2 голосов
/ 30 октября 2009

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

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

0 голосов
/ 30 октября 2009

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

  • Introduction_course
  • Introduction_certificate
  • funday_swimming
Еще один сертификат

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

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

...