Ninguno de los dos. Por lo general, usaría tinyint con una tabla de búsqueda
-
char(1) será un poco más lento porque la comparación usa intercalación
-
confusión:A medida que se extiende a más de A y P
-
usar una letra lo limita a medida que agrega más tipos. Ver último punto.
-
cada sistema que he visto tiene más de un cliente, por ejemplo, informes. A y P tienen que resolver en Activo y Pasivo en cada código de cliente
-
extensibilidad:agregue un tipo más ("S" para "Suspendido"), puede colocar una fila en una tabla de búsqueda o cambiar una gran cantidad de código y restricciones. Y tu código de cliente también
-
mantenimiento:la lógica está en 3 lugares:restricción de base de datos, código de base de datos y código de cliente. Con una búsqueda y una clave externa, puede estar en un solo lugar
-
Enum no es portátil
En el lado positivo de usar una sola letra o Enum
Nota:hay una pregunta de MySQL relacionada con DBA.SE sobre Enums . La recomendación es usar una tabla de búsqueda allí también.