VARCHAR o ENUM en las migraciones de Laravel

Fecha de publicación: julio 14, 2021

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on whatsapp
WhatsApp
Share on email
Email

¿VARCHAR o ENUM en las migraciones de Laravel? Si no sabes nada acerca de los campos de tipo Enum, a continuación tienes un vídeo para entender todo lo que necesitas para trabajar con ellos en Laravel.

La meta de esta entrada es ofrecerte mi  punto de vista para que tomes la decisión correcta cuando desees trabajar con migraciones en Laravel y desees ocupar columnas con valores predeterminados.

Problemas con los Enum en las migraciones de Laravel

El principal problema y motivo de esta entrada viene al querer actualizar este tipo de columnas con nuevos valores, algo muy normal en cualquier proyecto. Imagina que inicias tu proyecto con una migración y un Enum para usuarios que luce de la siguiente forma:

Hasta ahí bien, pero ahora imagina que necesitas actualizar ese Enum para añadir nuevos valores, por ejemplo un nuevo rol Customer, no es posible, deberías eliminar esa columna y volver a crearla, con los problemas que ello puede conllevar.

Solución

Mi recomendación es que para los casos más flexibles, en lugar de utilizar columnas de tipo Enum, hagas uso de Varchar. Lo único que debes hacer para asegurarte que esa columna sólo acepta los datos que a ti te interesan es hacer uso de las validaciones de Laravel de la siguiente forma.

De esta forma tan sencilla, si a partir de ahora necesitamos añadir un nuevo tipo de usuario a nuestro sistema, nuestra base de datos no será un problema, simplemente deberemos actualizar el Enum UserType y añadir ahí los valores que deseamos permitir.

¿Quieres acceder a más de 150 cursos de PHP y JavaScript?

¿Quieres ganar tiempo en tus desarrollos con nuestros proyectos descargables?


Vue, Laravel, Inertia, NodeJS, WordPress, Serverless, React Native, Amazon Web Services y mucho más

Hazte Premium y consigue acceso completo
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login

Create an Account Back to login/register