Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-09-2007
jlrbotella jlrbotella is offline
Miembro
 
Registrado: ene 2007
Posts: 185
Poder: 18
jlrbotella Va por buen camino
Tipo relación de 0 a muchos en Accesss

Hola:

Estoy intentando crear una relación de 0 a muchos en access, pero no me funciona correctamente. La relación es de 1 a muchos, pero el campo de la clave ajena la permito a nulo, pero access no lo entiende.

Aqui teneís el ejemplo:

tabla colores
(
codigo integer, (clave primaria)
descripcion char(50)
);

tabla casas
(
codigo integer (clave primaria),
propietario char(20),
color integer, (clave ajena a colores.codigo), puede llevar nulos
);

He creado una relación en la ventana de relaciones de casas.color a la tabla colores.codigo. Exijo integredad referencial, pero me obliga a tener un valor en el campo color de la tabla casas.

¿Cómo lo puedo solucionar, exigiendo integredad referencial?

Gracias
Responder Con Cita
  #2  
Antiguo 20-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
No debería obligarte.
¿Cómo has definido la JOIN cuando das de alta la relación?

Otra cosa, ten en cuenta que debes dejar el campo vacío, no con cero como lo deja Access por defecto.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-09-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por jlrbotella Ver Mensaje
Hola:

Estoy intentando crear una relación de 0 a muchos en access, pero no me funciona correctamente. La relación es de 1 a muchos, pero el campo de la clave ajena la permito a nulo, pero access no lo entiende.


Gracias
No es que no lo entienda, sucede que lo que estás planteando viola las reglas de integridad referencial. si deseas ingresar registros en casas, cuyo color no exista en el maestro de colores, pues simplemente no uses Integridad.

Ahora bien. si verdaderamente deseas usar integridad referencial entonces debes hacer lo siguiente.

En el maestro de colores debes dar de alta un valor que identifique a los "Indeterminados", posteriormente en la tabla de casas, en la clave de color, pones como valor por default el valor del color "Indeterminado". Y listo, ya tendras una verdadera regla de integridad referencial.

Suerte.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #4  
Antiguo 20-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por poliburro Ver Mensaje
...sucede que lo que estás planteando viola las reglas de integridad referencial. si deseas ingresar registros en casas, cuyo color no exista en el maestro de colores, pues simplemente no uses Integridad.
Yo creo que eso es equivocado.
A mi entender la integridad referencial contempla los nulos. De ahí que existan las relaciones 1->N y las 0->N

La Integridad referencial dice que si pones un valor, este debe existir en la tabla de referencia, pero no quiere decir que tengas que ponerlo obligatoriamente. También puedes dejarlo vacío (con lo que no violas la integridad).
Lo que tú planteas, es lo que se llama utilización de "registros fantasma" y creo que no está dentro de las reglas de integridad.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 20-09-2007
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 18
Gabo Va por buen camino
Otra opción es crear una tabla que relacione las casas con sus colores...

Código:
tabla casas_colores
(
codigo_casa integer,
codigo_color integer,
);
Esto te permite todo el juego que quieras:

- No seleccionar el color de una casa.
- Seleccionar más de un color para una casa.
- Seleccionar un sólo color para la casa... aunque, ésto último, lo tienes que controlar por programación.

No obstante, creo que la solución de poliburro será la más acertada si sólo será un color a elegir o ninguno.
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #6  
Antiguo 20-09-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
pues me parece un poco sobrado iniciar un debate usando como fundamento el "Yo creo", "Yo pienso".

por que no mejor referirse a la documentación existente.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #7  
Antiguo 21-09-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por poliburro Ver Mensaje
...me parece un poco sobrado iniciar un debate usando como fundamento el "Yo creo", "Yo pienso".
Pues no era mi intención; Era simplemente que lo creo (o lo pienso) así, aunque tampoco es que lo pueda asegurar 100%.

Conozco algunas BD relacionales y todas ellas permiten las relaciones 0->n, por lo tanto, se me hace estraño que una BD relacional posea una relación que contradice la integridad referencial.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con generadores en relacion Muchos-a-Muchos Hagen Firebird e Interbase 3 30-10-2006 16:47:51
Relacion Muhcos a muchos Sito Conexión con bases de datos 1 11-04-2006 13:25:29
UPDATE en una relacion 1 a Muchos... JorgeBec SQL 4 19-11-2004 20:16:37
... muchos requisitos ... Jure Humor 0 02-04-2004 16:22:18
Consulta SQl, relacion 1 a muchos Walter SQL 3 15-07-2003 03:13:28


La franja horaria es GMT +2. Ahora son las 21:18:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi