Relacionar tablas para hacer formulario

Estoy haciendo una base de datos tipo biblioteca para registrar todas las revistas que se reciben en la empresa y sus préstamos. Tengo algunas dudas. Explico brevemente como es una parte de la base de datos y uno de los problemas que tengo:
Tablas:
Revistas; IdRevista (Clave ppal - Num), Título (Texto), Editorial, Periodicidad, Precio, Observaciones, Logotigo
NumeroRevista; IdNumero (Clave ppal - num), IdRevista(Num), Periodo (texto), año, fecha recepción, Portada (D. Adjuntos), Indice (D. Adjuntos)
Articulos: IdArticulo, IdRevista, IdNumero (Clave ppal - num), Títuloarticulo, pagina, resumen
Las relaciones son las siguientes: de TRevistas-IdRevista uno a varios a TNumeroRevistas-Id Revista, de TNumeroRevistas-IdNumero uno a varios a TArticulo-IdNumero.
No se si puedo dejar las tablas así y si las ha relacionado bien (creo que no) he hecho un formulario con subformulario para dar de alta los nuevos números de revistas que voy recibiendo sin tener que meter los datos de la revista cada vez, pero no se si podría reducir las 3 tablas a 2, una para registrar las revistas y otra para los números y sus artículos. (Voy a necesitar hacer informes de los números recibidos por fecha y los artículos que componen esas revistas).
Por ahora con resolver esto... Me daría por satisfecha.

1 respuesta

Respuesta
1
En principio, por lo que comentas, la estructuración de la BD en tres tablas me parece la opción más correcta. Utilizar dos tablas no sería conveniente.
El primer problema que veo en las relaciones que has establecido es que la tabla NumeroRevista te va a dar problemas. ¿Por qué? Porque imagínate que tienes los siguientes datos:
- Revista "Flores" -> Número: 24
- Revista "Tubérculos" -> Número 24
Cuando intentes meter el número 24, a pesar de ser dos revistas diferentes, no te va a dejar, porque tienes el campo [IdNumero] como clave principal, lo que implica que no te va a dejar meter duplicados.
Tampoco veo la utilidad, en la tabla Artículos, haber puesto el mismo campo como clave principal, por los motivos que te he apuntado antes.
En lugar de relacionar los diferentes elementos por datos que conoces de las revistas lo mejor, creo yo, sería relacionarlos por número de registro, un valor interno que da Access y que tú no tienes porque enterarte "de que existe" (nótense las comillas).
Lo que haría yo sería lo siguiente:
Tabla
Revistas; IdRevista (Clave ppal - Num), Título (Texto), Editorial, Periodicidad, Precio, Observaciones, Logotigo
A esta tabla le correspondería un único formulario, y sólo tendrías que dar de alta la información sobre la revista una sola vez
Tabla
NumeroRevista; [IdNR] -> Autonumérico (clave principal), IdNumero (num), IdRevista(Num), Periodo (texto), año, fecha recepción, Portada (D.Adjuntos), Indice (D.Adjuntos)
En esta tabla me iría al campo IdRevista y seleccionaría el tipo de datos "Asistente para búsquedas". Ahí le diría que debe buscar los valores en la tabla Revistas, le añadiría los campos [IdRevista] y [Título] y, si te lo pide, le dices que el valor que debe guardar es el de [IdRevista]. Las relaciones se te crearán automáticamente.
Tabla
Articulos: [IdA]->Autonumérico y clave principal; IdArticulo,  IdNumero (num), IdRevista (num), Títuloarticulo, pagina, resumen
No tengo muy claro si el IdArtículo corresponde a una información en concreto o simplemente lo quieres utilizar como índice. En el primer caso lo dejas; en el segundo lo puedes quitar, puesto que el campo [IdA] te hará esa función.
Lo que haría yo en este caso es crear un formulario sobre la tabla NumeroRevista. A cotinuación insertaría un subformulario basado sobre la tabla Artículos y las relaciones entre formulario y subformulario vendrían dadas por dos campos: IdNumero e IdRevista.
Bueno, espero que te sirva. Cualquier cosa me comentas. Ya me dirás qué tal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas