()

Преди няколко дена един приятел ме попита как може да има категории, в сайта който си прави. Искаше нещо подобно:

Както можете да забележите, структурата е дървовидна и много наподобява файлова система ( ако решим, че 1,2 и 3 са папки, а елементите с червена точка файлове ).
Структурата има 2 варианта;

  1. В една категория да има елементи, само ако тя няма подкатегории
  2. В една категория да има елементи, ако тя има подкатегории

В този случай най-удачното решение ми се стори база данни със следната таблица:

  • ID е задължителното поле за всеки елемент от таблицата
  • ParentID - посочваме ID-то на родителският елемент; 0 за елемент от корена.
  • IsLeaf - флаг, показващ дали елементът е листо на категория с подкатегории.

Това с 3-те най-основни полета на таблицата. Останалите може да са каквито поискате, в зависимост от желанието Ви.