-- https://www.phpmyadmin.net/
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 01-12-2025 a las 05:01:15
-- Versión del servidor: 10.4.32-MariaDB
-- Versión de PHP: 8.2.12

START TRANSACTION;



--
-- Base de datos: `asistencia_db`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `asistencias`
--

CREATE TABLE `asistencias` (
  `id_asistencia` int(11) NOT NULL,
  `id_estudiante` int(11) NOT NULL,
  `id_materia` int(11) NOT NULL,
  `fecha_asistencia` date NOT NULL,
  `hora_registro` time NOT NULL,
  `estado_asistencia` enum('presente','ausente','tardanza') NOT NULL,
  `observaciones` text DEFAULT NULL,
  `registrado_por` int(11) DEFAULT NULL,
  `fecha_creacion` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `asistencias`
--

INSERT INTO `asistencias` (`id_asistencia`, `id_estudiante`, `id_materia`, `fecha_asistencia`, `hora_registro`, `estado_asistencia`, `observaciones`, `registrado_por`, `fecha_creacion`) VALUES
(22, 1, 2, '2025-11-30', '13:03:03', 'tardanza', NULL, NULL, '2025-11-30 18:03:04'),
(23, 4, 2, '2025-11-30', '13:04:53', 'tardanza', NULL, NULL, '2025-11-30 18:04:54'),
(24, 1, 3, '2025-11-30', '22:39:46', 'presente', NULL, NULL, '2025-12-01 03:39:47'),
(26, 5, 3, '2025-11-30', '22:44:50', 'tardanza', NULL, NULL, '2025-12-01 03:44:52');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `estudiantes`
--

CREATE TABLE `estudiantes` (
  `id_estudiante` int(11) NOT NULL,
  `codigo_estudiante` varchar(20) NOT NULL,
  `nombres` varchar(100) NOT NULL,
  `apellidos` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `telefono` varchar(20) DEFAULT NULL,
  `direccion` text DEFAULT NULL,
  `fecha_registro` timestamp NOT NULL DEFAULT current_timestamp(),
  `estado` enum('activo','inactivo') DEFAULT 'activo'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `estudiantes`
--

INSERT INTO `estudiantes` (`id_estudiante`, `codigo_estudiante`, `nombres`, `apellidos`, `email`, `telefono`, `direccion`, `fecha_registro`, `estado`) VALUES
(1, '2024001', 'Juan Carlos', 'Pérez García', 'juan.perez@estudiante.edu.pe', '987654321', NULL, '2025-11-30 02:05:02', 'activo'),
(2, '2024002', 'María Isabel', 'López Fernández', 'maria.lopez@estudiante.edu.pe', '987654322', NULL, '2025-11-30 02:05:02', 'activo'),
(3, '2024003', 'Pedro José', 'Ramírez Torres', 'pedro.ramirez@estudiante.edu.pe', '987654323', NULL, '2025-11-30 02:05:02', 'activo'),
(4, '2024004', 'Ana Lucía', 'González Vargas', 'ana.gonzalez@estudiante.edu.pe', '987654324', NULL, '2025-11-30 02:05:02', 'activo'),
(5, '2024005', 'Luis Miguel', 'Sánchez Rojas', 'luis.sanchez@estudiante.edu.pe', '987654325', NULL, '2025-11-30 02:05:02', 'activo'),
(6, '2024006', 'Carmen Rosa', 'Flores Mendoza', 'carmen.flores@estudiante.edu.pe', '987654326', NULL, '2025-11-30 02:05:02', 'activo'),
(7, '2024007', 'Roberto Carlos', 'Díaz Castro', 'roberto.diaz@estudiante.edu.pe', '987654327', NULL, '2025-11-30 02:05:02', 'activo'),
(8, '2024008', 'Patricia Elena', 'Morales Silva', 'patricia.morales@estudiante.edu.pe', '987654328', NULL, '2025-11-30 02:05:02', 'activo'),
(9, '2024009', 'Diego Alejandro', 'Ruiz Campos', 'diego.ruiz@estudiante.edu.pe', '987654329', NULL, '2025-11-30 02:05:02', 'activo'),
(10, '2024010', 'Sofía Valentina', 'Herrera Vega', 'sofia.herrera@estudiante.edu.pe', '987654330', NULL, '2025-11-30 02:05:02', 'activo'),
(11, '2024017', 'Jose', 'Mamani', '', '', '', '2025-12-01 03:01:08', 'activo');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `materias`
--

CREATE TABLE `materias` (
  `id_materia` int(11) NOT NULL,
  `nombre_materia` varchar(100) NOT NULL,
  `descripcion` text DEFAULT NULL,
  `grado` varchar(50) DEFAULT NULL,
  `seccion` varchar(10) DEFAULT NULL,
  `id_docente` int(11) NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `updated_at` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `materias`
--

INSERT INTO `materias` (`id_materia`, `nombre_materia`, `descripcion`, `grado`, `seccion`, `id_docente`, `created_at`, `updated_at`) VALUES
(2, 'matemáticas', 'es bueno', '5to', 'B', 1, '2025-11-30 15:17:00', '2025-12-01 03:44:23'),
(3, 'ingles', 've el futuro', '1ro', 'C', 1, '2025-12-01 01:36:27', '2025-12-01 01:36:27');

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `materia_estudiante`
--

CREATE TABLE `materia_estudiante` (
  `id` int(11) NOT NULL,
  `id_materia` int(11) NOT NULL,
  `id_estudiante` int(11) NOT NULL,
  `created_at` datetime DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Volcado de datos para la tabla `materia_estudiante`
--

INSERT INTO `materia_estudiante` (`id`, `id_materia`, `id_estudiante`, `created_at`) VALUES
(4, 2, 4, '2025-11-30 13:04:07'),
(5, 3, 1, '2025-11-30 22:02:49');

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `asistencias`
--
ALTER TABLE `asistencias`
  ADD PRIMARY KEY (`id_asistencia`),
  ADD KEY `id_materia` (`id_materia`),
  ADD KEY `registrado_por` (`registrado_por`),
  ADD KEY `idx_fecha` (`fecha_asistencia`),
  ADD KEY `idx_estudiante` (`id_estudiante`),
  ADD KEY `idx_estado` (`estado_asistencia`);

--
-- Indices de la tabla `estudiantes`
--
ALTER TABLE `estudiantes`
  ADD PRIMARY KEY (`id_estudiante`),
  ADD UNIQUE KEY `codigo_estudiante` (`codigo_estudiante`),
  ADD KEY `idx_codigo` (`codigo_estudiante`),
  ADD KEY `idx_nombres` (`nombres`,`apellidos`);

--
-- Indices de la tabla `materias`
--
ALTER TABLE `materias`
  ADD PRIMARY KEY (`id_materia`),
  ADD KEY `id_docente` (`id_docente`);

--
-- Indices de la tabla `materia_estudiante`
--
ALTER TABLE `materia_estudiante`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_materia_estudiante` (`id_materia`,`id_estudiante`),
  ADD KEY `id_materia` (`id_materia`),
  ADD KEY `id_estudiante` (`id_estudiante`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `asistencias`
--
ALTER TABLE `asistencias`
  MODIFY `id_asistencia` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27;

--
-- AUTO_INCREMENT de la tabla `estudiantes`
--
ALTER TABLE `estudiantes`
  MODIFY `id_estudiante` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- AUTO_INCREMENT de la tabla `materias`
--
ALTER TABLE `materias`
  MODIFY `id_materia` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

--
-- AUTO_INCREMENT de la tabla `materia_estudiante`
--
ALTER TABLE `materia_estudiante`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

--
-- Restricciones para tablas volcadas
--

--
-- Filtros para la tabla `asistencias`
--
ALTER TABLE `asistencias`
  ADD CONSTRAINT `asistencias_ibfk_1` FOREIGN KEY (`id_estudiante`) REFERENCES `estudiantes` (`id_estudiante`) ON DELETE CASCADE,
  ADD CONSTRAINT `asistencias_ibfk_2` FOREIGN KEY (`id_materia`) REFERENCES `materias` (`id_materia`) ON DELETE CASCADE,
  ADD CONSTRAINT `asistencias_ibfk_3` FOREIGN KEY (`registrado_por`) REFERENCES `usuarios` (`id_usuario`) ON DELETE SET NULL;
COMMIT;

