Ticom Perú

cómo elegir el tipo de campo adecuado en Laravel y MySQL: boolean, enum, string, integer, tinyInteger

cómo elegir el tipo de campo adecuado en Laravel y MySQL: boolean, enum, string, integer, tinyInteger

Cuando diseñamos una base de datos en Laravel con MySQL, uno de los aspectos más importantes es elegir el tipo de campo correcto para cada dato. Una mala elección puede traer problemas de validación, rendimiento o incluso inconsistencias en tu aplicación.

1. Caso real: el campo state

Supongamos que tenemos un campo para indicar si un registro está activo o no:


$table->boolean('state')->nullable();
        

Esto significaba que el campo podía tomar tres estados: true (1), false (0), null (sin definir).


$table->boolean('state')->default(1);
        
👉 Lección aprendida: usar default elimina la posibilidad de valores null.

2. Caso real: el campo esoportunidad


$table->boolean('esoportunidad')->nullable();
        

Aquí también se permite un tercer estado (null) cuando no se define el valor.

3. Caso real: el campo perfilcoincide


$table->enum('perfilcoincide', ['iniciar', 'si', 'no'])->default('iniciar');
        

En este caso usamos enum porque tenemos una lista de valores fijos y limitados.

4. Comparativo de tipos de campo en Laravel/MySQL

Tipo de campo ¿Qué almacena? Ejemplo de uso Ventajas Desventajas
boolean 0, 1 y opcionalmente NULL activo/inactivo Simple y rápido No sirve si necesitas más de 2 estados
enum Lista de valores fijos si/no/iniciar Restringe valores Difícil de modificar en producción
string Texto corto Nombres, correos Flexible No valida opciones
integer Números enteros Edad, cantidades Soporta rangos grandes Ocupa más espacio que tinyInteger
tinyInteger Números pequeños (-128 a 127) Flags, niveles bajos Muy eficiente en espacio Rango limitado

5. ¿Cuándo conviene usar cada uno?

  • boolean: solo para dos estados (activo/inactivo).
  • boolean nullable: cuando necesitas un tercer estado indefinido.
  • enum: para listas cortas y fijas.
  • string: cuando los valores pueden variar mucho.
  • integer / tinyInteger: cuando trabajas con números.

6. Recomendaciones finales

✔ Usa boolean para flags binarios.
✔ Usa enum para listas cerradas.
✔ Usa string para valores dinámicos.
✔ Recuerda nullable() si necesitas permitir null.

🚀 Conclusión

Elegir el tipo de campo adecuado en Laravel y MySQL no es un detalle menor: influye en la claridad, consistencia y rendimiento de tu base de datos. La clave está en pensar en los estados reales que tendrá tu aplicación y elegir el tipo que mejor los represente.


Etiquetas :
F