Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Duda relacion 1-1 en Access 2010

Estas en el tema de Duda relacion 1-1 en Access 2010 en el foro de Bases de Datos General en Foros del Web. Hola. Tengo una base de datos con 4 tablas para representar el funcionamiento de un concesionario de coches de segunda mano. Como los coches no ...
  #1 (permalink)  
Antiguo 05/03/2014, 03:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Duda relacion 1-1 en Access 2010

Hola.

Tengo una base de datos con 4 tablas para representar el funcionamiento de un concesionario de coches de segunda mano. Como los coches no se repiten por matricula, solo habrá un coche por matricula, así se disponen de las siguientes tablas:

Proveedores, Coches, Clientes y Ventas.

La tabla "Proveedores" se relaciona con la tabla "Coches" por un campo "DNIP" que aparece en ambas tablas y solo es clave primaria en "Proveedores" (relación de 1 a muchos).

La tabla "Clientes" se relaciona con la tabla "Ventas" por un campo "DNIC" que también aparece en ambas tablas y solo es clave primaria en "Clientes" (relación 1 a muchos).

Las tabla de Coches hace la función de "stock", pero solo hay un coche por matricula (por eso su clave primaria es "matricula" sin duplicados). La tabla Ventas tiene también clave primaria "matricula", porque a cada venta le corresponde un solo coche con una "matricula" concreta que coincidirá con una "matricula" en la tabla de "Coches".
La relación creo que debe ser a la fuerza de 1-1, pero como puede haber coches guardados en la tabla "Coches" y no haber ninguna venta de esos mismos, no se como hacer para que tengan cierta integridad referencial de tal modo que cuando se ingrese una Venta, la matricula que se introduzca deba estar también en la tabla Coches (pero no al contrario: se podrá meter un coche con una matricula sin tener necesariamente que existir esa matricula en la tabla Ventas).

Como solucionar el problema de la relación 1-1 de las tablas "Coches" y "Ventas" de modo que no haya problemas luego al meter los datos???

Gracias por adelantado.
  #2 (permalink)  
Antiguo 05/03/2014, 10:01
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda relacion 1-1 en Access 2010

sencillo pones una FK en tu tabla de ventas, y asi te aseguras que al momento de que se inserte una venta, el coche deba de estar en su respectiva tabla :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 05/03/2014, 11:18
 
Fecha de Ingreso: marzo-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Duda relacion 1-1 en Access 2010

Pero como pones esa clave foranea para la relacion 1-1 en la tabla Ventas? Estamos hablando de 1 venta 1 coche (por matricula). No puede haber varias ventas de un mismo coche y tampoco puede haber una venta de varios coches.

gracias.
  #4 (permalink)  
Antiguo 05/03/2014, 11:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda relacion 1-1 en Access 2010

eso lo restringes con una llave primaria en la tabla ventas, donde tu llave primaria sea matricula y esta sea tu llave foranea
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 05/03/2014, 13:05
 
Fecha de Ingreso: marzo-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Duda relacion 1-1 en Access 2010

Ya encontré una solución en Access:

En la tabla Ventas he creado un nuevo campo autonumerico (ID) que sera la clave primaria (ya no sera Matricula). En la tabla Coches sigue siendo clave primaria el campo "matricula".

Me creo una relación de 1 a muchos desde la tabla Coches (1) a la tabla Ventas (muchos), enlazando la clave primaria "matricula" de la tabla Coches hacia el campo "matricula" de la tabla Ventas (que ya no es clave primaria).

Y ahora viene lo importante: Dentro de las propiedades del campo "matricula" en la tabla Ventas, le pongo que pueda ser Indexado PERO sin duplicados (al igual que esta puesto el campo "matricula" en la tabla Coches).

Con esto ya me permite introducir coches en la tabla "coches" (sin duplicados), pero no me permite introducir ventas de coches que no existen en la tabla "Coches". Ademas tampoco puedo tener ventas duplicadas.

Un saludo y gracias por la ayuda.
  #6 (permalink)  
Antiguo 05/03/2014, 13:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda relacion 1-1 en Access 2010

y en que difiere a lo que yo te dije??? ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 05/03/2014, 14:06
 
Fecha de Ingreso: marzo-2014
Mensajes: 4
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Duda relacion 1-1 en Access 2010

No, si es lo mismo, lo que pasa es que no sabia en principio que tendria que hacerlo con una relacion de uno a muchos (antes tenia de 1-1) y luego limitar los duplicados en las 2 tablas. Sin limitar los duplicados en ambas tablas no funcionaba bien.

Etiquetas: 1-1, access, relacion, siguiente, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:08.