Esquema entidad relacion mysql y paso a tablas

Tengo la siguiente imagen

Mi problema viene a la hora de hacer el paso a tablas, mas o menos yo lo veo así :

Serie (id, nombre, enlace, cod_temporada y capitulo) los dos ultimos como clave foranea

temporada(id,numero_temporada)

Y finalmente capitulos(id, capitulo, temporada, nombre_serie) haciendo los ultimos referencia a las otras 2 tablas.

Respuesta
1

Las tablas deberían estar relacionadas por la id de la principal, es decir, en temporada tener un id_serie por ejemplo que haga referencia al campo id de la tabla serie, lo mismo para capitulos, debería tener un id_temporada que haga referencia a la id de la tabla temporada.

Te paso el query que debería funcionar:

SELECT * FROM serie, temporada, capitulos WHERE temporada.id_serie = serie.id AND capitulo.id_temporada = temporada.id

Mas o menos como tu dices, he hecho una y me salió así

El problema con dicha estructura viene en que en la tabla capítulos , cuando pasas a la segunda temporada de una serie , ya no puedes indicar el capitulo 1 de la segunda temporada , puesto que el id_capitulo es auto_increment y va subiendo con cada nueva inserción , una solución perrera sería añadir un campo numero que identificase el numero del capitulo

Todo esta duda viene por una web que estoy haciendo , en la que muestro videos dependiendo de tal serie que se seleccione , despues de la temporada , y ya muestro todos los capitulos de dicha temporada , y ahora mismo tengo todo alojado en una misma tabla , y querría dejarlo todo mejor hecho

he hecho tu consulta , adaptandola a los nombres que he puesto y este es el resultado SELECT * FROM series, temporadas, capitulos WHERE temporadas.cod_serie = series.id_serie AND capitulos.cod_temporada = temporadas.id_temporada

Está correcto el filtro, ¿te funcionó bien?

Una vez que estableces los enlaces en la secuencia WHERE deberías usar directamente los id de cada tabla para referenciar a un determinado capítulo de una determinada temporada de una determinada serie.

Cómo te pasé el SELECT, así como el que creaste con la adaptacion para los nombres de campo que estás usando, se establece una relación única entre los capítulos, la temporada y la serie.

Es decir, si se quiere ver la información del capítulo 3 de la temporada 2 de tal serie no habría más de un resultado disponible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas