Diseña un banco de proyectos y su base de datos
Clase 3 de 17 • Curso Básico de Manejo de Datos en Laravel con Eloquent ORM
Antes de empezar a escribir código sin control, debemos ejecutar el paso número cero, que es diseñar el proyecto y cómo estará estructurada la base de datos a la cual accederemos a través de Eloquent.
Diseñaremos un banco de proyectos, lo que traduce a una aplicación para administrar información sobre proyectos, algo así como un repositorio. El foco de esta aplicación será la realización de un CRUD,. lo llamaremos Project Manager o Manejador de Proyectos.
El nombre de la base de datos será project_manager. Para empezar podemos identificar que necesitaremos una tabla principal que almacene los proyectos llamada projects. La información de los proyectos es nuestro segundo foco para empezar a armar la estructura, necesitaremos que cada proyecto tenga un identificador, nombre, fecha de ejecución, presupuesto, ciudad donde se ejecutará, la compañía que lo llevará a cabo, si está activo o no y un usuario responsable.
Luego tendremos que relacionarla con la ciudad, la compañía y el usuario responsable, para esto necesitaremos tener una tabla por cada grupo de datos que será de donde tomaremos su identificador y lo traeremos como llave foránea a nuestra tabla principal.
Esto pensando que existen muchas ciudades y cada proyecto solo puede pertenecer a una ciudad donde se ejecutará, igualmente sucede con la compañía y el usuario que será titular.
El modelo de nuestra base de datos quedaría así:
De esta forma, ahora tenemos las tablas users, companies y cities que se relacionan directamente con la tabla projects.
Recuerda que vamos a desarrollar un CRUD sobre proyectos, por lo tanto, tendremos que preparar las acciones de Agregar, Actualizar, Eliminar y Listar datos. Aquí empieza la magia de Eloquent pues el flujo será el mismo para todas:
Ya tenemos nuestra base de datos lista para empezar a trabajar sobre ella, te invito a seguir a la siguiente clase donde iniciaremos nuestro proyecto en Laravel y haremos la conexión a nuestra base de datos en MySQL.