Я храню некоторые иерархические данные в MySQL. По разным причинам я решил использовать замыкающие таблицы (вместо вложенных множеств, списков смежности и т.п.). До сих пор у меня это отлично работало, но теперь я пытаюсь понять, как на самом деле отображать это дерево в HTML (то есть с правильными отступами).
В качестве примера, скажем, у меня есть такое дерево...
- Food
- Fruits
- Apples
- Груши
- Vegetables
- Carrots
- Fruits
Моя таблица "Еда" выглядела бы так...
[ID] [PARENT_ID] [NAME]
1 0 Food
2 1 Fruits
3 1 Vegetables
4 2 Apples
5 2 Pears
6 3 Carrots
Тогда моя таблица "Замыкание" будет выглядеть так...
[PARENT] [CHILD] [DEPTH]
1 1 0
2 2 0
3 3 0
4 4 0
5 5 0
6 6 0
1 2 1
1 3 1
1 4 2
1 5 2
1 6 2
2 4 1
2 5 1
3 6 1
Теперь мне интересно, как я смогу правильно отобразить это в HTML, в идеале вот так...
<ul>
<li>Food
<ul>
<li>Fruits
<ul>
<li>Apples</li>
<li>Pears</li>
</ul>
</li>
<li>Vegetables
<ul>
<li>Carrots</li>
</ul>
</li>
</ul>
</li>
</ul>
... который будет отображать мое дерево в виде пули, как в начале моего вопроса. В любом случае, любая помощь будет высоко оценена!
Чарльз