Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulojuchem

Uma chave estrangeira referenciando duas tabelas

Recommended Posts

Olá!

Gostaria de saber se é possivel utilizar FK`s para duas tabelas diferentes, mas usando o mesmo campo, segue o exemplo:

CREATE TABLE table_x (
          id INT(11) NOT NULL AUTO_INCREMENT, 
          PRIMARY KEY(id) , 
          tipo BOOLEAN COMMENT '0 para entrada , 1 para saida' , //se o valor for 1, a FK fornecedor_cliente sera ligada a tabela fornecedor , do contrario, cliente
          fornecedor_cliente INT(11) NOT NULL , 
          CONSTRAINT tablex_fornecedor_cliente REFERENCES //AQUI DA ZICA , sera que da pra por um if ali? =p, acho que if sao somente para selects
          ON blablabla....,
          OUTROS_CAMPOS....
          ) ENGIN...

 

Se nao funcionar, colocarei int mesmo sem FK, se nao eu vou precisar criar tabelas separadas e um trilhao de joins p/ tirar relatorios

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução possível nestes casos é fazer a validação por trigger.

Uma trigger de before insert ou update verifica se a chave coreespeonte existe, se não gera um erro (exception).

Mas revise o modelo, o problema pode estar nele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.