You can interpret my words to mean whatever you like them to mean, but I mean them to mean that you should not choose the column type that fits your current expectations exactly. Allways leave room for expansion, because it will expand, murphy says it will, and so do the voices in my head.
BTW: Most database designs already use a blob-ish type to store the username,
remember the good old varchar(255)? Only diff between TEXT and VARCHAR is that VARCHAR can hold 255 chars max and TEXT can get a lot bigger. And when did you ever limit the size of a varchar to less than 255? It certainly doesn't make a difference to the database wether you put 10 or 100 or 255...
Everybody uses varchar because it can expand to contain things bigger than what we expect, accepting the database slowdown as a small price to pay for saving diskspace. So why use a tinyint that is so small that it can't contain my hourly fee? (hey, I can dream can't I?)
Anyway, repeating my point; You can hardly ever be sure that you'll never need more than 127/255 in the tinyint column. That is a reason why the big-boys (oracle and informix) only support the INT/NUMBER type and not smallint, tinyint etc... and they did not get that big by doing it wrong...
There, I've made my point a few times now I'll let it be.
No need to get into a personal preference battle here. :-)
I'll leave it to the reader to decide.