如何创建多层次的“树”? (如果它可以称为树)

时间:2009-10-30 01:05:07

标签: php mysql visualization hierarchical-data data-visualization

我有一个说coursescertificates以及fun_days的列表。这些都称为objects。每个对象都有其要求object_requirements。要求可以是objects之一,也可以是其中之一。

您可以将任何object 不带 object_requirements作为starting point。 “每个人都可以 拥有 这些对象。”

所以可能是这样:

  • Introduction_course是一个起点(没有要求)
  • 拥有Introduction_certificate的人可以获得
  • Introduction_course(此coursecertificate的要求
  • ) 拥有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 个答案:

答案 0 :(得分:2)

您可能会考虑类似有向图的内容,此前的SO问题可能对此有用:

How to do directed graph drawing in PHP?

答案 1 :(得分:0)

您可以使用<li>标记,以便:

  • Introduction_course
    • Introduction_certificate
      • funday_swimming
    • 另一个证书

如果你想用html显示它。

如果你想要更具图形性的东西,可以使用svg文件或画布标签(在html5中)来绘制图形,或者,只需使用lib_gd绘制位图,并在需要时将其制作成imagemap