Hola, de nuevo:
Antes de pasar a mis comentarios creo que este tema se trataría de forma más debida en el foro de MySQL. Que sean los moderadores quienes decidan.
En mi opinión, debieras revisar al menos los siguientes campos:
gender
Como te comenté yo usaría valores numéricos o un campo de tipos
enum de forma que a la hora de hacer tus consultas éstas sean lo más exactas posibles. Es posible que, en algunos casos, los usuarios consignen "hombre" o "varón" para el sexo masculino. Si es así las consultas te resultarán complejas de escribir (p.e., SELECT * FROM tbl_mitabla WHERE gender LIKE 'hombre' OR LIKE 'varón' ... ) Sin embargo, si asignas números simplemente tendrías que escribir: SELECT * FROM tbl_mitabla WHERE gender = 0).
timezone
No entiendo en absoluto el uso de un campo tipo
time. Piensa por un momento qué vas a hacer con él. Si es introducir un valor de hora, minutos y segundos lo entenderé. Creo que debes revisar este tipo de campos en el
manual de MySQL.
Como ya escribí anteriormente creo que un campo de tipo
integer que permita valores negativos es más útil. Así podrás operar con la hora del sistema y el valor de dicho campo sumando o restando tantas horas como sean necesarias.
country
Para este campo puedes tener una tabla aparte cuyo identificador sea textual y corresponda al código ISO de países
(ISO 3166-1-alpha-2), y luego la relacionas que para eso MySQL es un gestor de bases de datos relacionales.
admin
No sé cuál es su funcionalidad. ¿Determinar si eres administrador?
En general, siempre que te sea posible trabajar con números aprovéchalo. Son más precisos y dan menos dolores de cabeza.
En fin, espero que te haya servido de ayuda. Un saludo.