Cita: La primera es con respecto a el campo fecha, esta votación se reiniciaría una vez por mes entonces quiero saber que me sirve más para esos fines si TIMESTAMP, o DATE o cual.
Yo, en este caso, usaría TIMESTAMP, pues permite generar su valor de manera automática haciéndola NOT NULL y DEFAULT CURRENT_TIMESTAMP
ALTER TABLE `tabla` ADD `nombrecampofecha` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
Luego al hacer el insert basta con incluir NULL para ese campo, y se generará el valor de fecha. Piensa que el timestamp es también time e incluye hora, minuto y segundo; su equivalente sería no date, sino DATETIME, y con programación también podrás insertarle el valor de hoy y ahora.
Cita: La segunda: yo ya tengo una tabla con paises entonces para dar la opción de almacenar solo esos datos (paises ) en el campo Pais usaría ENUM? o SET ?
Ninguna de las dos, la almacenas en un campo int que sea foreign key de la tabla de paises, que deberá tener un primary key numérico auto_increment