Crear tablas y relaciones en access

Soy nuevo en el mundo de access. Estoy intentando hacer una base de datos en access.

He realizado las tablas y sus posibles campos. Tengo varias preguntas, la clave principal es un campo único que no se puede repetir ¿es correcto?

En el caso de la tabla Persona-Cursillo, he puesto dos claves principales, ¿se puede hacer? En el caso negativo, ¿Qué posible campo puedo poner como clave principal?

A la hora de hacer las relaciones, no tengo ni idea… me lía mucho el tema de 1:1 o 1:n …. Con las tablas que tengo y las líneas (que creo que serán las relaciones) ¿Cómo lo puedo hacer?

2 Respuestas

Respuesta
2

1º/ Efectivamente, la clave principal, es un valor único y por tanto no se puede repetir.

2º/ En tu tabla Persona-cursillo, lo que tienes realmente es una clave compuesta, no dos claves principales independientes. Esto implica que no se puede repetir un par id_persona-Nº_Cursillo.

En principio no hay inconveniente en hacerlo así, pero has de plantearte si un mismo alumno puede matricularse dos veces en un mismo curso (por ejemplo que no lo supere y lo quiera volver a intentar). En ese caso, este sistema no te lo permitiría.

Una alternativa sería ponerle a esa tabla un campo autonumérico como clave principal.

3º/ No te líes con los tipos de relaciones pues no vas a tener ninguna 1:1 con las tablas que tienes, y serán todas 1:N.

Para hacer las relaciones, si no lo haces en el diseño de la tabla a través del tipo de datos "asistente para búsquedas", tienes que ir a "Herramientas de la base de datos"->"Relaciones" y crearlas "a mano", arrastrando los campos de una tabla a la otra.

Un saludo.


bit.ly/NkSvAcademy   /    bit.ly/ForoNkSv 

¡Gracias! 

Agradezco a vosotros dos los mensajes, sin duda alguna me han ayudado.

En la tabla Persona-Cursillo, os explico un poquillo, una persona puede hacer varios cursos, pero nunca podrá repetir ese curso, es decir, solo se puede hacer una vez. Al igual que un cursillo pueden hacerlo varias personas diferentes.

Con esta pequeña explicación, aún tengo las dudas sobre la clave principal. ¿Cuál puedo poner?

Otra pregunta, como en cada tabla, siempre hay un campo que se relaciona con otro, ¿Cómo hago esa relación? ¿Se refiere a lo de 1:1, 1:n ….?

Perdonad, si son preguntas absurdas… pero son mis primeros pasos en Access.

Muchas gracias.

En Persona-cursillo, no está mal que tengas una clave compuesta, como te decía es una opción de las que tienes.

Yo, no obstante, prefiero usar un campo autonumérico para mis claves, y siempre, siempre huyo de claves principales de tipo texto.

Para crear relaciones ya te expliqué la forma "manual" (ventana de relaciones y arrastras el campo de una tabla al campo relacionado de la otra.

Si quieres que se encargue Access, una vez hayas creado la tabla "datos personales", para crear la relación con "continúan formándose", en el tipo de campo de "id_persona" seleccionas "asistente para búsqueda" y sigues los pasos del asistente. Con el resto de tablas lo mismo.

Y aprovecho para corregir mi primera respuesta: si en "continúan formándose" vas a poner como clave principal "id_persona", esa relación con datos personales es 1:1, porque nunca vas a tener dos registros en ella de una misma persona.

Muchas gracias,

¿Hay alguna forma de hacerte llegar el fichero y me digas si está correcto?

GRacias nuevmaente

Puedes subirla a dropbox o similar y poner aquí el enlace. Pero si la hiciste como tienes en la imagen, no está mal.

Genial, adjunto un enlace de dropbox.

https://www.dropbox.com/s/89xag4p8pxbml7j/BD-Cur.accdb?dl=0 

Gracias,

Un saludo

Las relaciones las tienes correctas, aunque según tu diseño inicial te faltaría la relación entre rector y datos_personales.

Otra cosa es el diseño de los campos, que ahí sí habría cosas que decir... Pero como no tengo tiempo para explicarte todos los detalles, te remito a un par de enlaces que lo explican:

http://neckkito.xyz/nck/index.php/teoria/cosas-que-es-bueno-saber/estructurar-y-relacionar-una-bd 

http://neckkito.xyz/nck/index.php/teoria/objetos/tablas 

Si te pasas por el foro http://nksvaccessolutions.com/Foro/, en la sección El Reto de NkSv puedes ojear también los consejos que se dan en el primero de ellos para la correcta creación de tablas.

Por último, en bit.ly/NkSvAcademy tienes disponibles a día de hoy dos cursos gratuitos, uno específico de Tablas y otro general de Access.

Muchas gracias!

Los campos los hice rápido y no presté atención, lo revisaré nuevamente.

Ya he creado las relaciones y me quedaría así.

El siguiente paso ya sería ir picando los datos, ¿no?

Muchas gracias.

Sobre las relaciones puedes plantearte agregarles "integridad referencial" (lo tienes explicado en los enlaces que te pasé).

Y antes de ponerte a meter datos directamente en las tablas, yo te recomendaría hacer previamente formularios, y usarlos para introducirlos. Pero bueno, ya es cuestión de gustos...

¡Gracias! 

En el momento que tenga un hueco, me pongo con ello.

Mil gracias por tus consejos. 

Cuando intento agregar la integridad referencial, en varias tablas me sale el error que adjunto. He estado leyendo cosas pero sigo sin entenderlo.

GRacias

Cierra las tablas antes de modificar las relaciones.

Respuesta
2

Para los índices piensa en el DNI, es único e irrepetible. Y además, si sabes el DNI de una persona, en teoría, puedes saber como se llama, donde vive, que coche tiene, su historial médico, en fin todo. Por eso es un buen índice. En caso de que en la tabla no haya DNI o éste tuviera que repetirse por algún motivo, lo más cómodo es usar los Id autonuméricos, tienen sus ventajas e inconvenientes.

Para las tablas te diría, Una Persona--Uno o varios Cursillos, pero claro también puede ser UN cursillo--Una o varias personas, eso sólo lo sabes tú. Pero lo normal, es hacer una tabla con los datos que nunca, o casi nunca cambian, como puede ser DNI, Nombre, dirección, FechaNac con un id, por ejemplo IdPersona(autonumérico) para relacionarla con el Idpersona(numérico) de la tabla Cursillos en una relación Uno a Varios.

Por último, por el hecho de que una tabla vaya a usar datos de otra no quiere decir que deban estar relacionadas, para eso está las funciones

Dlookup, Dsum, Dcount, etc

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas