Enunciado #
Una empresa de logística dispone de una flota de vehículos que deben revisarse periódicamente en talleres distribuidos por el país. Un vehículo puede acudir a distintos talleres y cada taller revisa muchos vehículos. Cada paso por un taller genera un registro de revisión.
Datos que debes almacenar #
El documento no concreta los atributos descriptivos. Para esta práctica, usa:
- Vehiculo:
id_vehiculo(entero, identificador),matricula(texto, única),marca(texto) ymodelo(texto). - Taller:
id_taller(entero, identificador),nombre(texto) ydireccion(texto). - Mecanico:
id_mecanico(entero, identificador),nombre(texto) yapellidos(texto). - Revision:
id_vehiculo(entero),id_taller(entero),fecha_hora_entrada(fechahora),fecha_hora_salida(fechahora, opcional mientras la revisión esté abierta),id_mecanico(entero) einforme(texto).
Reglas del negocio #
- Un vehículo puede tener muchas revisiones y un taller puede registrar muchas revisiones.
- Usa
(id_vehiculo, id_taller, fecha_hora_entrada)como PK compuesta deRevision. Así un vehículo puede volver al mismo taller en otra fecha y hora. - Cada revisión tiene exactamente un mecánico responsable; un mecánico puede encargarse de muchas revisiones.
- El responsable no forma parte de la PK: cambiarlo no debe crear otra revisión.
- El documento no define una adscripción fija de cada mecánico a un taller. Para este challenge, la relación con el taller se conoce a través de cada revisión; no añadas otra FK en
Mecanico.
Restricción temporal #
En el campo Revision.fecha_hora_salida, escribe exactamente este CHECK:
1fecha_hora_salida IS NULL OR fecha_hora_salida >= fecha_hora_entrada
Diseña las cuatro tablas y sus tres relaciones 1:N. La tabla Revision resuelve las visitas repetidas entre vehículos y talleres, y añade el responsable de cada visita.
Criterios para el challenge #
Conserva los nombres de tablas y campos indicados; los nombres de campos están escritos sin tildes y con guiones bajos. Los tipos entre paréntesis corresponden a las opciones del editor. Todos los campos son obligatorios (NN), salvo los marcados como opcionales; marca las claves primarias (PK), foráneas (FK) y las restricciones de unicidad que se deducen de las reglas.
Deja desactivados autoincremento, clave alternativa e índice. Deja vacíos el valor por defecto, las acciones ON DELETE y ON UPDATE y, salvo que se indique expresamente, CHECK. Usa los extremos 1 y n, o 1 y 1, en las conexiones; una FK opcional tiene NN desmarcado.
Una PK compuesta identifica por la combinación de sus campos: no marques cada componente como único por separado. Si una FK referencia una PK compuesta, dibuja una conexión por cada pareja de campos; todas juntas representan una única referencia a la misma fila. En una implementación SQL se debe declarar una sola FOREIGN KEY con todas esas columnas, no varias referencias independientes. El editor no comprueba por sí solo las reglas sobre varias filas ni todas las restricciones compuestas.