Evitar duplicidad en base de datos películas en tablas actor y director

Tengo una base de datos hecha en access 2010 llamada Películas.
Tengo tablas película, actor, director.

Resulta que cuando el actor es también director, tengo que escribir los datos en la tabla actor y volver a repetirlos en la tabla director. ¿Cómo evitar eso?.
Ya tengo relacionadas las tablas películas con actores con una tercera tabla, y por otro lado otra relación películas con directores con una tercera tabla.

1 Respuesta

Respuesta
-1

Si no te he entendido mal, introduces los datos directamente en las tablas. De esa manera no hay forma de evitarlo. Tampoco entiendo lo de relacionar "... con una tercera tabla".

En principio lo que necesitas es relacionar Películas - Director, uno a varios y Película - actores, uno a varios.

Luego creas un formulario, basado en Películas, con dos subformularios : Director y actores. Luego desde el formulario es fácil decirle que actor y director son el mismo y que Access se encargué de introducirlo.

Mi formulario con películas y actores

Desde aquí introduzco datos de películas y actores...
Formulario películas directores:

Qué tendría que hacer en el formulario películas para que si es la misma persona el actor que el director llene los dos llenando solo uno y no tener que repetir. ¿Se entiende?
Lo de la tercera tabla es por ejemplo:

- Tabla películas, tabla actores, tabla relación
tabla pelicula                                tabla actores                 tabla relación
numero pe                                    numeroac                      numero pe

pelicula                                            nombre                         numero ac

año                                                 apellido

Genero

Sinopsis
Eso luego relaciono película con actores por los campos clave en una tercera tabla

tabla pelicula                                tabla actores                 tabla directores numerope                                        relacion                      relacion

pelicula                                            nombre                        nombre

año                                                  apellido                        apellido

Genero

Sinopsis

Luego creas una relación uno a varios de "numerope" con "relación" de la tabla actores y lo mismo con "relacion" tabla directores.

Creas un formulario basado en la tabla película con 2 subformularios basados en actores y directores. Ya tendrás toda la información de la película en el mismo formulario y para los casos en la que actor y director es igual, lo más limpio y fácil, es simplemente copiar y pegar.

Ya me contarás

y mediante un sql? como sería?

Y ¿por qué tiene que ser con "un sql"?

copiar y pegar no es la idea de aprender a evitar la duplicidad de datos. Por eso se me ocurre sql, pero si se te ocurre otra cosa podrías indicármela?. Saludos

Ahora si que no te he entendido. " Copiar y pegar no es la idea de aprender a evitar la duplicidad de datos" . ¿Qué tiene que ver con la "duplicidad de datos"?. Si un actor se llama "Kepasada" y al mismo tiempo es el director, no hay ninguna duplicidad de datos. Yo he entendido que sólo querías evitar tener que escribir dos veces el mismo nombre. Para ello soluciones hay muchas, la primera y esencial estructurar bien la base de datos. Dado que te preocupas de no escribir dos veces el mismo nombre, pero tienes que ver dos formularios distintos con relaciones en una tercera tabla innecesaria, para ver los datos de una película.

Por otra parte lo mismo que realizas con un SQL lo realizas con una consulta de inserción. Utilizar excesivos recursos para una cosa tan simple como la que planteas no me parece necesario, pero...

Lo que puedes hacer es realizar una consulta con lo que necesites y cuando consigas que esa consulta te de los resultados que deseas, sólo tienes que ponerla en formato SQL (Access lo hace sólito) y posteriormente la "pegas" dónde la necesites, que tu sabrás, pero en algún sitio le tendrás que decir que el actor también es director.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas