Не самый удачный вариант многоуровнего дерева, но самый простой. Если уровней не сильно много, или не нужны операции со всеми потомками то вполне жизнеспособный
что конкретно не получается и какая задача стоит?
зы в книги программирование баз данных sql типичные ошибки и их устранение более детально описана эта задача
upd
чтоб было понятней упростим таблицу, у себя добавите все что нужно
id | parent_id | title
────────────
1 | 0 |КАТЕГОРИЯ1
2 | 1| категория1.1
3 | 1 | категория1.2
4 | 3 | категория1.2.1
5 | 0 | КАТЕГОРИЯ2
6 | 5 | категория2.1
.......
чтобы получить список категорий
select *from categories where parent_id = 0
пользователь нажал на категорию один, получили id 1 разворачиваем дерево
select *from categories where parent_id =1
недостаток в том что мы не можем получить сразу всех потомков КАТЕГОРИЯ1 и даже не знаем без дополнительного запроса если у них дочерние элементы (например каку элемента категория1.2), но для вашей задачи когда глубина не очень большая вполне пожходит