Given the fact that enum provides no real error checking on the type, the enum type is likely to lead to data errors.
If you want to make sure the user chooses one and only one option for a field in the table, then make a table with the types in it and foreign key the field that would have been enum to it. You have to use innodb to have fk relations I think.
I mean, you can get the rather non-intuitive behavior like this from enum:
mysql> create table test (id int, pick enum('abc','123','2'));
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test values (1,2);
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+------+
| id | pick |
+------+------+
| 1 | 123 |
+------+------+
1 row in set (0.00 sec)
Wait asecond, didn't I specify 2? Oh, yeah, if you insert a number instead of the text with quotes, it uses the number it got.
Ugh.