Ticom Perú

Tipos de campos en Laravel 12: boolean, enum, string y más

Tipos de campos en Laravel 12: boolean, enum, string y más

Cuando definimos una base de datos en Laravel 12 usando migraciones, debemos elegir el tipo de campo correcto para cada columna. Esto garantiza consistencia, evita errores y hace que el código sea más legible.

En este tutorial revisaremos los tipos de campos más usados en Laravel/MySQL:

  • boolean
  • boolean nullable
  • tinyInteger
  • enum
  • string
  • text
  • integer

1. Boolean

Se usa cuando el valor solo puede ser true o false. En MySQL, Laravel lo traduce a TINYINT(1).


$table->boolean('activo')->default(true);
    

Ejemplo: indicar si un usuario está activo.

2. Boolean nullable

Permite tres estados: true, false y null (no definido aún).


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

Ejemplo: validación pendiente de un correo.

3. TinyInteger

Se usa para almacenar números pequeños (0-255 si es unsigned). Ideal para estados codificados con números.


$table->tinyInteger('estado')->default(0); 
// 0 = pendiente, 1 = aprobado, 2 = rechazado
    

4. Enum

Restringe los valores posibles a una lista definida.


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

Ejemplo: definir si un lead coincide con el perfil buscado.

5. String

Equivale a VARCHAR. Se usa para texto corto, como nombres o correos.


$table->string('nombre', 100);
    

Ejemplo: nombre del cliente.

6. Text

Se usa para texto largo, como observaciones o descripciones.


$table->text('observacion')->nullable();
    

Ejemplo: comentarios internos de un lead.

7. Integer

Se usa para números enteros grandes. Puede ser unsigned para valores positivos.


$table->integer('cantidad')->unsigned();
    

Ejemplo: cantidad de productos en stock.

📊 Comparación entre tipos

Tipo ¿Qué almacena? Ejemplo Ventajas Desventajas
boolean 0 o 1 Activo/inactivo Sencillo y legible No admite indefinido
boolean nullable 0, 1 o null Verificación pendiente Permite un tercer estado Más difícil de consultar
tinyInteger 0 a 255 Estados codificados Eficiente Menos legible sin mapear
enum Lista fija iniciar / si / no Restringe valores Difícil de ampliar
string Texto corto Nombre, email Flexible No valida opciones
text Texto largo Observaciones Permite mucho contenido No eficiente en búsquedas
integer Números grandes Stock, precios Amplio rango Ocupa más espacio

✅ Recomendaciones finales

✔ Usa boolean para valores binarios claros (sí/no).
✔ Usa boolean nullable si necesitas un tercer estado indefinido.
✔ Usa tinyInteger cuando manejes múltiples estados codificados.
✔ Usa enum para listas cortas y fijas.
✔ Usa string para valores dinámicos o de texto corto.
✔ Usa text para descripciones largas.
✔ Usa integer para cantidades, IDs o números enteros grandes.


Etiquetas :
F