45 Relacionar TABLAS en el curso de LARAVEL 10 Sistema de control de asistencia

Duración: 13 min
Módulo: Módulos Secundarios y Funcionalidad Clave 🧩 Lección 6 de 8

Descripción

🛠️ Lección 45: Relacionar Tablas (Módulo Asistencia)

Esta sesión preparó la infraestructura del sistema para poder registrar la asistencia de los miembros.

1. ⚙️ Creación del Módulo Asistencia

Se utilizó el comando de Laravel para generar todos los componentes necesarios del módulo de una sola vez:

  • Comando: php artisan make:model Asistencia -mcr
  • Se creó el Modelo (Asistencia).
  • Se generó la Migración para crear la tabla.
  • Se creó el Controlador (AsistenciaController) con todas las funciones de recurso.

2. 🔗 Normalización de la Base de Datos

El objetivo principal es la normalización para evitar la duplicación de datos (como el nombre, correo, etc.) del miembro en cada registro de asistencia. En su lugar, se utiliza una Llave Foránea (Foreign Key).

  • Motor: Se confirmó que el motor de la tabla es InnoDB, que es el requerido para permitir relaciones entre tablas.

3. 🔑 Definición de la Relación en la Migración

Se modificó la migración de la tabla asistencias para incluir la relación con la tabla miembros.

CampoTipoFunciónDescripción
fechadate-Fecha en que se tomó la asistencia.
miembro_idbigIntegerunsignedLlave Foránea que almacena el ID del miembro.
  • Referencia: Se usó ->references('id')->on('miembros') para enlazar el campo miembro_id con la columna id de la tabla miembros.
  • Acción en Cascada: Se añadió la directiva ->onDelete('cascade') para asegurar que si se elimina un miembro, todos sus registros de asistencia asociados también se eliminen automáticamente.

4. 🚀 Ejecución de la Migración

Una vez definida la relación, se ejecutó la migración:

  • Comando: php artisan migrate
  • Resultado: Se creó la tabla asistencias en la base de datos y se estableció la relación visualizada como llave foránea con la tabla miembros.