Oracle - FK multiple especial... Imposible?

   
Vista:

FK multiple especial... Imposible?

Publicado por Diego (1 intervención) el 18/03/2008 18:15:26
Hola.

Tengo una tabla que tiene una columna que es clave ajena a dos tablas diferentes:

CONSTRAINT fk_X FOREIGN KEY (CIF) REFERENCES A (CIF) ON DELETE CASCADE,
CONSTRAINT fx_Y FOREIGN KEY (CIF) REFERENCES B (CIF) ON DELETE CASCADE

y necesito que se evaluen como si hubiera un OR entre ellas, es decir, que la clave ajena tiene que estar en la tabla A OR en la tabla B, pero no deben comprobarse las dos a la vez porque sino nunca se complirian ambas!
Que puedo hacer?
Uso Oracle por lo que he descartado hacer un CHECK con un SELECT anidado...

Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:FK multiple especial... Imposible?

Publicado por Pedro (25 intervenciones) el 19/03/2008 13:29:34
Hola buenas:

SI yo no me equivoco o es lo q tengo entendido, lo que pretendes en oracle no se puede hacer, en todo caso podrias usar dos campos si quisieras mantener la constraint, y luego para hacer consultas dependiendo del valor de uno o del otro cruzar con una tabla o la otra.Si quieres mantener dicho valor en un solo campo lo unico que te puedo decir es que no levantes la FK, evalua el rendimiento, y mira si merece la pena crearte un indice.

siento no poder ayudarte en mas, espero que alguien pueda hexarte un cable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar