Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2013, 10:16
harvey
 
Fecha de Ingreso: mayo-2007
Mensajes: 256
Antigüedad: 17 años, 8 meses
Puntos: 3
Problemas con el uso de claves foraneas

Estoy encontrando problemas con claves foraneas en un par de bases de datos y agradecería que alguien me echara una mano:

PRIMERA DB
Uno de los problemas lo tengo en Access, en una base de datos para comics donde en un principio tenía tres tablas: comics, originales y relaciones. En la tabla comics meto los datos del comic que poseo (en su mayoria ediciones españolas), en la tabla originales meto los datos de los números originales USA y en la tabla relaciones pues los relaciono de manera que una edición española puede recopilar varios números USA y a su vez un número USA puede estar presente en varias ediciones españolas.

Problema 1: Al crear un informe de los comics en edición española donde se detalle los números USA que comprenden solo me lista los comics a los que efectivamente les he adjudicado una correspondencia. Aquellos cuyos números aún no he indicado o simplemente no tienen correspondencia no aparecen.

Problema 2: Cree un campo en la tabla comics con clave foranea (con el asistente)a las editoriales para evitar escribirlas una y otra vez pero he descubierto que me obliga a rellenarlo siempre so pena de que algunas consultas no me muestren los resultados donde se ha omitido dichos datos.

SEGUNDA DB
La que he mencionado en otros post, que es algo así como un arbol genealógico. Tengo una primera tabla donde estan todos los miembros. Luego tengo una segunda tabla que llevaría las relaciones y ahí esta el problema: el sentido común me dice que la forma de esta tabla deberia ser así como:

id_relación (Primaria)
id_miembro (foranea)
id_padre (foranea)
id_madre (foranea)

Planteado de esta forma haría muy facil la consulta de datos como determinar hermanos en los que ambos progenitores son los mismos o aquellos que solo tienen un progenitor común. Sin embargo, al igual que en el caso anterior, por lo visto las claves foraneas obligan a tener los datos (según me comentaba el forero gnzsoloyo) con lo que si no tengo los datos de uno de los progenitores no puedo hacer el registro. Por otro lado la propia base de datos en phpmyadmin me da problemas para importar los datos (desde un archivo generado con Access).

La otra opción que me queda es que la tabla de relaciones sea así como:
id_relacion (primaria)
id_miembro
id_hijo
Donde si no tienes uno de los dos datos simplemente no existe relacaión y por tanto registro pero complica la cosa para determinar padres, hermanos, hermanastros y demás.