كيف يمكنني إنشاء "شجرة" متعددة التسلسل الهرمي؟(إذا كان من الممكن أن يسمى شجرة)

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 أو علامات Canvas (في html5) لرسم الرسم البياني، أو استخدم lib_gd فقط لرسم صورة نقطية، وتحويلها إلى خريطة صورة، إذا لزم الأمر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top