Ich habe da in meinem alten Projekt ein ähnliches Problem gehabt und es auf andere Art gelöst (entspricht aber definitiv nicht einer Normalform
): Das Feld Kategorie enthielt einen beliebigen Pfad. Unterordner wurden durch \ getrennt. Mit einer kleinen Funktion konnte ich mir alle Datensätze in einem Treeview als Baum darstellen lassen. Den "Pfad" konnte man schön zerlegen und so auch ohne weiteres die Tiefe bestimmen. Die Funktion ist allgemein geschrieben, ich habe sie nicht zu Hand, wenn aber Interesse besteht, suche ich sie morgen mal raus.