سؤال

وهذا يجب (أمل) أن يكون سؤال سهل جدا للبعض منكم الإجابة.

ولدي قائمة تكراري العمل من قاعدة بيانات الخلية، الآن مشكلتي الرئيسية هي:

ما هو أفضل وسيلة لإنشاء URL؟ I يفضل أن في عنوان كل صف مثل / بيض / الحليب / لحم الخنزير المقدد /. البيض يكون مستوى 0 مثل: البيض-0، الحليب-1، لحم الخنزير المقدد-2. أي أفكار حول كيفية بشكل دينامي الانتاج هذا؟

وانا ذاهب الى حد كبير على ما قال "كليتوس" بعض التعليقات أسفل على هذا السؤال: / ماي - بناء التسلسل الهرمي القائمة الملاحة

ولكن انا بحاجة الى المزيد من الشيء شرحا عن كيفية القيام بذلك.

هل كانت مفيدة؟

المحلول

وإلا إذا كنت تخطط لتعديل شجرة القائمة في كثير من الأحيان، قبل تخزين URL الهرمي المطلوبة لكل عنصر القائمة وربما كان أسهل (للقرار وقت التشغيل وهذا هو).

إذا كنت تتوقع أن شجرة إلى تعديل في كثير من الأحيان بما فيه الكفاية، دعونا نقول - من خلال واجهة ويب، فإنه سيكون من الأسهل لتوليد مسارات في كل مرة تقرأ القائمة، شيئا من هذا القبيل:

 id | name   | parent
----+--------+-------
 0  | eggs   | NULL
 1  | milk   | 0
 2  | bacon  | 1
 3  | tomato | 0
 4  | lettuce| 1

foreach (query("SELECT * FROM menu ORDER BY parent ASC") as $row) {
  $menuitem = array_merge(array(), $row);
  $menuLookup[$menuitem['id']] &= $menuitem;
  if ($menuitem['parent'] == null) {
    $menuitem['path'] = "/" . $menuitem['name'];
    $menu[] &= $menuitem[];
  } else {
    $parent &= $menuLookup[$menuitem['parent']];
    $menuitem['path'] = $parent['path'] . "/" . $menuitem['name'];
    $parent['menu'][] &= $menuitem;
  }
}

وأنا لم تصحيحه هذا الرمز، واختبارها فقط لمدة صحة، -)

نصائح أخرى

حسنا، إذا كنت ترغب في التسلسل الهرمي، تكون أفضل طريقة أعرف يسمى ب "تعديل الطلب المسبق شجرة الانتقالي" الذي يوصف بقدر كبير من التفصيل <لأ href = "http://www.sitepoint.com/print/hierarchical- قاعدة بيانات البيانات / "يختلط =" نوفولو noreferrer "> في هذه المقالة Sitepoint ، و يبدأ في منتصف المسافة تقريبا أسفل.

والفرق الرئيسي من ما اقترح GUSS هو أنه قليلا أكثر performant للوأسهل كثيرا لجلب سوى جزء من شجرة كنت تبحث عنه.

ولقد كتبت شيئا في رائع: <لأ href = "http://blog.srvme.de/2009/11/29/reading-a-reflexive-association-in-a-recursive-way-for-grails- ورائع / "يختلط =" نوفولو noreferrer "> http://blog.srvme.de/2009/11/29/reading-a-reflexive-association-in-a-recursive-way-for-grails-and- رائع /

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