Bueno, mira, por lo pronto, como ya te he dicho, es dificil resolver un ejercicio de este tipo si no se cuenta con una descripcion al menos de lo que representa.
Pareciera representar los recorridos de un sistema de transporte interurbano, o bien una carrera automovilística de estilo rally, que recorre varias ciudades.
En cualquier caso, si observamos el diagrama que te dieron se pueden deducir algunas coas...
1) La tabla base es Etapas.
2) La tabla dependiente es Recorridos.
3) Caminos y Localidades son tablas autónomas, que no apuntan a ninguna otra, pero son FK en las otras tablas.
En esencia, las tablas de Caminos y Localidades tablas se definirían así:
Como te dije, esas tablas NO poseen ninguna FK.
Por su lado, la tabla Recorridos tiene una partede la PK apuntando a Caminos. y la otra a Localidades.
Hay que tener cuidado con la de la FK, porque el nombre del campo origen es diferente.
La cuarta tabla es parecida a la tercera en cuanto a la relacion de las FK, pero NO EN LA PK.
Esta tabla debe apuntar a la PK de la tercera tabla, y son sólo los campos de salida y llegada los que apuntan a Localidades y Caminos:
El script completo sería:
Algunas observaciones:
- AL existir FK, existe un orden de inserciones de datos (el mismo orden en que las tablas se crean), y un orden de borrado (el orden exactamente inverso al de creación de las tablas).
- Los datos de tipo DECIMAL tienen un formato específico. El que indica el gráfico no permite recorridos de más de 99,9 Km, porque un espacio de la longitud está ocupado por el punto decimal. Leer el manual de referencia, por favor.
- Los valores numéricos no deben usarse con VARCHAR. Estos producen errores gravisimos en las consultas.
- Las unidades de tiempo en horas se ponen en campos TIME. De lo contrario no se administran correctmente las consultas.
Espero que esto te sirva.