Are taxonomy hierarchies possible?

I have run into similar problem with the system I am currently building – I needed ZIP codes to be children of Cities, which were to be children of States. What I have learned is that it was possible to add custom fields to the term creation form to link the term (e.g. ZIP) to the parent term from Cities taxonomy, but it was not an ideal solution.

What I have end up with was just one hierarchical taxonomy Location, were first level terms are always states, second level terms were cities and third level were ZIP codes. Of course, there is nothing that stops users from submitting ZIP code as top-level term, but I am hoping that my users are not dumb enough to do that. 🙂 I have then built a number of supporting functions to determine what is the hierarchy level of given term.