hallo,
kommt auf die Anwendung an. Wenn "city" tatsächlich nur einen Elter (was ist die Einzahl von Eltern?) hat, finde ich Lösung 2 vernünftig.
tabelle (id, name, subcat_of, type ("country || state || city") )
"city" könnte ja auch mehrere Eltern haben:
Politisch:
germany>hessen>bensheim
germany>hessen>regierungsbezirk>kreis_bergstrasse>bensheim
Weinlage:
germany>hessische_bergstrasse>bensheim
Touristisch:
germany>odenwald>bensheim
LG Kalle