Alphanumeric: If your values don't vary much in length, CHAR is a
better choice than VARCHAR because tables with fixed-length rows can
be processed more efficiently than tables with variable-length rows.
Note: you can't mix VARCHAR with CHAR column types within the same
table -> MySQL then silently converts CHAR to VARCHAR! (eg. create a
table with CHAR and VARCHAR in it and then perform a DESCRIBE mytable,
you will see that they will be both indicated as VARCHAR)
Numeric: I would definitly use one of the INT flavours or FLOAT
I don't see any "urgent" disadvantages in your situation, but in case
of large tables this could result in weaker performance. Generally,
considering the idea of "good programming habits" (like transparency,
maintainance, efficiency...), I believe it's better to define your
columns more strictly.
Bart