Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/05/2011, 17:29
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 8 meses
Puntos: 344
Respuesta: Problema con claves foráneas

Sí que podrían ser nulas (o por lo menos en Postgresql si pueden si dni no fuese o formase parte de la clave primaria de la tabla Pedido), pero no te afectan en este caso.

Está clarísimo el problema. Tal y como tienes configurada las claves foráneas cuando insertas un pedido te obliga a que el dni esté en ambas tablas. No hay una forma instantánea de solucionarlo, pero la más "sencilla" sería crear una tabla para los datos comunes entre usuarios y administradores y otras dos tablas (una para usuarios y otra para administradores) para los datos no comunes. De esta manera tendrías sólo una tabla con id que podrías referenciar en la tabla pedido.

Otras maneras pasarían por quitar las claves foráneas y realizar las comprobaciones con triggers, verificando al insertar si el dni insertado está en alguna de las dos tablas.

Yo apuesto por la primera solución. Si alguien se le ocurre alguna solución mejor (supongo que habrá) están bienvenidas.