Нужно построить N-уровневое древовидную структуру для пользовательского LMS с использованием php / mysql - PullRequest
0 голосов
/ 13 октября 2011

Может ли какое-либо тело помочь мне с индексированием меню иерархии родитель-потомок, например

По сути, я создаю персональную LMS.

Main (K-12,NCERT)
->Class (Class 3,Class 4,Class 5)
->Subject (Physics,Chemistry)
->Units (Unit 1,Unit 2)
->Chapter (Chap 1, Chap 2)
->Topic (Topic 1, Topic 2)
->Sub Topic (Sub Top 1, Sub Top 2)
->Sub Sub Topic (Sub Sub Top 1, Sub Sub Top 2)

каждая тема имеет свой собственный заголовок и содержание (текст, SWF, статус проверки качества)


- NCERT   
       Class 5   
       Class 6
       Class 6_Physics
         Class 6_Physics_Unit 4
           Class 6_Physics_Unit 4_Chapter 1
           Class 6_Physics_Unit 4_Chapter 2
             Class 6_Physics_Unit 4_Chapter 2_Topic 1
             Class 6_Physics_Unit 4_Chapter 2_Topic 2
             Class 6_Physics_Unit 4_Chapter 2_Topic 3
                --Class 6_Physics_Unit 4_Chapter 2_Topic 3_Sub Topic 1
             Class 6_Physics_Unit 4_Chapter 2_Topic 4
           Chapter 3
         Unit 5
       Class 6_Chemistry
       Class 6_Biology   Class 7   Class 8
       Class 8_Physics
         Class 8_Physics_Unit 1
       Class 8_ Chemistry
       Class 8_Biology
         Class 8_Biology_Unit 4
         Class 8_Biology_Unit 5

1
2
3
3.1
3.1.1
3.1.1.1
3.1.1.1.1
3.2
3.3
4
5
...
...
n

Спасибо Сейед

1 Ответ

1 голос
/ 13 октября 2011

Если вы спрашиваете о наилучшей схеме БД, тогда создайте таблицу тем следующим образом:

|COLUMN NAME    |DATA TYPE
|---------------|-----------------------------------------------------
|id             | unsigned int, auto-increment, Primary Key, not null
|parent_id      | unsigned int, not null
|title          | varchar(size-as-appropriate)
| ...           |  ... and so on

Таким образом, каждая запись имеет уникальный id.Если parent_id равно 0, то это элемент верхнего уровня, в противном случае он является дочерним для любой записи, имеющей id, равный данному parent_id.

Запросы для поиска дочерних элементов /с родителями должно быть довольно легко разобраться.

Если вы хотите использовать MySQL для серьезных вещей, то я предлагаю вам провести небольшое исследование в области проектирования реляционных баз данных и нормализации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...