У тэга может быть сколько угодно родительских тэгов и сколько угодно дочерних.В таком случае, это не дерево. Зачем вообще такие сложности? Теги обычно одноуровневые делают.
Как правильно сделать структуру, чтоб удобно было с ними работать через модели?Зависит от того, что конкретно вы будете делать с этими моделями.