47 Migración Consultorio en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

Duración: 16 min
Módulo: 🏥 Infraestructura: Consultorios y Doctores Lección 2 de 14

Descripción

💾 Lección 47: Migración y Diseño de Tablas

Título del Video: 47 Migración Consultorio en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

1. 🏥 Migración de Consultorios

El primer paso fue definir la estructura de la tabla consultorios, que almacenará la información de cada sala de atención médica. Los campos definidos son:

  • Nombre: Un campo de tipo string para el nombre o número del consultorio.
  • Ubicación: Un campo de tipo string para indicar dónde se encuentra (ej. "Piso 3, Ala A").
  • Capacidad: Un campo para definir el número máximo de personas que pueden estar en la sala.
  • Teléfono: Un campo de tipo string que es nulo (nullable), permitiendo que el consultorio pueda o no tener un teléfono fijo asignado.
  • Especialidad: Un campo de tipo string para indicar la especialidad principal asociada.
  • Estado: Un campo de tipo string para definir si el consultorio está activo o inactivo (por ejemplo, por mantenimiento).

Una vez definidos, se ejecutó la migración (php artisan migrate) para crear la tabla en la base de datos.

2. 👨‍⚕️ Migración de Doctores

Se crearon automáticamente el modelo y la migración para la tabla doctors. Esta tabla se diseñó para almacenar la información personal y profesional de cada médico, y se establece una relación de uno a uno con la tabla de usuarios para que cada doctor tenga acceso al sistema.

Los campos definidos son:

  • Nombres y Apellidos: Para la identificación del doctor.
  • Teléfono: Para su contacto celular.
  • Licencia Médica: Un campo de tipo string para registrar su número de licencia profesional.
  • Especialidad: Para registrar su área de experticia.
  • user_id: Una clave foránea que referencia a la tabla users, lo que le otorga credenciales de acceso al sistema. Esta relación se establece con la acción on delete cascade, asegurando que si el usuario es eliminado, el registro del doctor también lo sea.

⏰ Migración de Horarios

Finalmente, se crearon los recursos para la tabla horarios, diseñada para definir los turnos de atención. Esta tabla establece las dos relaciones de uno a muchos analizadas en la lección anterior.

Los campos definidos son:

  • Día: Un campo de tipo string para registrar el día de la semana.
  • Hora de Inicio y Hora Final: Campos de tipo time para definir el rango del turno.

La tabla horarios se vincula mediante dos claves foráneas:

  1. doctor_id: Referencia a la tabla doctors, vinculando el horario a un médico específico.
  2. consultorio_id: Referencia a la tabla consultorios, indicando en qué sala se atiende el turno.

Ambas relaciones se definen con la acción on delete cascade para mantener la integridad de los datos.

Al terminar de definir las estructuras, se ejecutó el comando de migración con fresh y seed (php artisan migrate:fresh --seed) para actualizar la base de datos con las tres nuevas tablas y sus respectivas relaciones.