I just feel, to tie myself to a DB structure type, like you mentioned using the hierarchcical ID, might limit my application's portability - say, if I want to take it from MS SQL server to MySQL or Oracle or DB2.
Doing a small amount of coding in order to remain with ISO standard fields, is in my opinion, making for a far better application.
My 2cents.