Dúvida sobre chave estrangeira na tabela

3 respostas
R

Bom, tenho a seguinte situação:

Uma tabela de OC ( ordem de compra ) onde eu tenho vários atributos, porém tenho 2 atributos em específico que são chave estrangeira mais só 1 deles pode ser preenchido, se estivermos falando de DER sabemos que este é um daqueles casos de Exclusão e Totalidade (xt) onde você só pode fazer parte de um desses e somente 1. Os atributos são:

  • FUNCIONARIOID
  • DIRETORID

ou seja, esses dois campos são chave estrangeira, FUNCIONARIOID ( para a tabela FUNCIONARIO) e DIRETORID para a tabela DIRETOR, sendo que apenas 1 pode ser preenchido, sei que isso só pode ser feito via aplicação, porém se eu por eles como chave estrangeira e deixar null da erro. O que vocês me sugerem ?

3 Respostas

jonestorres

Bom,

Não sei o porque da tabela diretor, na minha visão, diretor é um funcionario, entao vc não é diretor, você esta diretor.

E não tem como vc fazer 2 campos ser uma hora chave estrangeira outra não.

Se não tiver como eliminar essa tabela diretor, crie uma tabela que fara referencia com sua OC e nessa tabela inclua os campos funcionarioId e diretor id, entao vc controla seus joins atraves dessa tabela.

vlw

R

desculpe dei um exemplo errado, imagine que você tem o campo FUNCIONARIOID e ALUNOID, sendo que os dois são chave estrangeira e apenas 1 é preenchido e o outro deve ficar NULL, como eu faço ?

pmlm

Fica como NULL. Uma FK pode ser nullable

Criado 24 de agosto de 2011
Ultima resposta 24 de ago. de 2011
Respostas 3
Participantes 3