![]() |
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 |
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. |
Cita:
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. |
Cita:
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. |
Otra opción es crear una tabla que relacione las casas con sus colores...
Código:
tabla casas_colores - 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. |
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. |
Cita:
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. |
La franja horaria es GMT +2. Ahora son las 10:30:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi