1) страны
2) в некоторых странах есть федеральный округ (Россия: Уральский, Центральный, Южный) - родитель страна
3) в некоторых странах/федеральных округах есть области - родитель или страна или фед. округ
4) города - родитель или страна или область или фед. округ
5) в некоторых городах есть административный округ (Москва: ЮАО, ВАО) - родитель город
6) районы - родитель или город или административный округ
Пользователь при регистрации выбирает район (в идеале), но может выбрать только город. В зависимости от его местоположения мы показываем ему соответствующий контент.
Короче имеем древо. Относительно невысокой вложенности, почти конечной. Но это дерево очень разнородно. Сейчас это сделано довольно жж0стко, через несколько таблиц. Как бы это дело организовать?
Есть мысли сделать все в 1 таблице - довольно легко будет реорганизовывать элементы, если я вдруг захочу добавить области в мою славную страну (сейчас там тупо города). Но в то же время мне нужно знать, к чему это я прикреплен - к городу или области. И как мы видим - на глубину иерархии рассчитывать нельзя, так как она может быть разная.