Типы полей в MySQL?
Под name использовать 25 в случае utf-8 имхо не самая лучшая идея, даже если ограничиться русским, на мыло 50 тоже может не хватить в извращенных случаях, но соответствующих rfc (домены.рф например :) ). Да и вообще никакого оверхеда между varchar(1) и varchar(256) нет, смысла экономить не вижу, если в требованиях есть ограничения, то проверять их в приложении и именно на количество символов, а не байт (для php — mb_strlen(), а не strlen() ).
id — int 10 unsigned
name — varchar 25
pass — varchar 32 (после md5)
email — varchar 50

если нужен bool, то tinyint 1