Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.