Diseña un banco de proyectos y su base de datos

3/17

Lectura

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.

Diseño de tablas y base de datos con Eloquent

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í:

Modelo Bases de Datos

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:

Flujo de Datos Eloquent

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.

Aportes 21

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Eloquent Model Conventions

**1. Nombres de tablas **
Utilizaran la nomenclatura “snake_case” en caso de que el nombre se conforme por más de una palabra, además de ser escrito de manera plural.

2. Llaves Primarias
Eloquent asume que cada tabla contiene una columna llamada id.

3. Marcas de Tiempo
Por defecto Eloquent espera que en cada tabla existan las columnas created_at y updated_at.

Nota: cada indicación anterior puede ser modificada, ya sea especificando un nombre de atributo propio o negando cada uno por nuestra cuenta.

Documentación: https://laravel.com/docs/7.x/eloquent#eloquent-model-conventions

Me encanta el diseño de la base de datos, me parece una buena práctica esquematizar la base de datos antes de empezar a tirar código por la ventana, me encanta hacerlas en papel y hacer las relaciones uniendo tablitas con lineas jaja simplemente es algo muy tonto que disfruto xD Listo para la clase!

el nombre de la tabla seria “users”

Si quieren aprender acerca de bases de datos, les recomiendo el curso de Fundamentos de Bases de Datos en Platzi.
https://platzi.com/clases/bd/

Ya hice mi tarea en Workbench 😃

ok

perfecto

oka 😃

Hola,

¿Y si el proyecto pertenece a una ciudad con el mismo nombre pero que está situada en otro país? En este caso, ¿El modelo no debería tener una tabla “país” y una tabla “estado”?

😃

Super recomendado antes de comenzar a escribir código, diseñar nuestra base de datos a lápiz y papel o en algún software que nos permita definir perfectamente las tablas, los campos de cada una y las relaciones que habrá entre ellas.
Excelente clase!

Para tener un manejo de base de datos recomiendo el Navicat

el proyecto esta muy interesante

MER, dibujar mi base de datos antes de iniciar.

OK

La tabla no debería llamarse users en la grafica?

De acuerdo

Por convencion la PK de las tablas no deberia ser solo Id para diferenciar el ID de la tabla con ID foraneos?

Excelente la explicación del flujo de Eloquent.

alguna herramientas para diseñar la DB que recomienden??

interesante