Scientist 2 Denunciar post Postado Maio 7, 2013 Bom, temos um Sistema Responsável apenas por realizar o cadastro de Funcionários e Departamentos, este tem um banco independente. Ocorre que temos outros 3 sistemas que estão sendo criados que dependem em algum ponto dos dados do Funcionário cadastrado no sistema acima. Ex: O sistema de Controle de Almoxarifado em algum ponto precisará identificar qual o funcionário responsável por ter dado baixa em determinado item. Porém, os bancos são distintos. Gostaria de saber se há como fazer uma referência de foreing key entre duas tabelas de bancos diferentes ?! 1 - Se a resposta for sim, Como fazer ? 2 - Se a resposta for não, qual seria a solução para esse problema ? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 7, 2013 Resolvi um problema assim em Oracle por meio de trigger de validação , no insert , por exemplo, valida-se se o registro correspondente existe na outra tabela (do outro sistema), um ponto negativo e que para se validar uma exclusão de uma registro na tabela funcionarios (do exemplo), teria de haver outra trigger no outro sistema/tabela para verificar se "nosso" sistema não há registro dependente. Mas a ideia básica é as triggers fazerem o trabalho que as pks e fks fariam. Não sei pörem se o MYSQL tem uma solução melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Maio 8, 2013 Desculpa Motta, mas podemos considerar essa solução da trigger meio que "gambiarra" certo ? Pensei no seguinte: Juntar todos os bancos em 1 só, mantendo o nome das tabelas, assim nos sistemas só mudariamos a localização do banco (que é fácil). Porém entraremos em outros problema: Se tivermos uma tabela com o mesmo nome em mais de 1 banco (a tabela USUARIO por exemplo aparece em todos os Bancos) não seria possível realizar a junção. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 8, 2013 Como disse a solução foi em Oracle, eram duas instâncias (é preciso até um objeto chamado link para permitir a leitura) diferentes a única solução para integrigade que vi foi trigger, e não acho gambiarra ( e já tive que fazer algumas) , triggers se prestam a validação. Não sei como é em MySql é um BD por usuário (owner) ? Um usuário "enxerga" o outro ? Tentou criar a fk qualificando a tabela ? Juntar os Bancos pode gerar o conflito do nome das tabelas fora o problema de acoplar coisas de natureza diversa, mas vale o estudo. http://stackoverflow.com/questions/3905013/mysql-innodb-foreign-key-between-different-databases Compartilhar este post Link para o post Compartilhar em outros sites
Scientist 2 Denunciar post Postado Maio 8, 2013 Gostei do Link, muito obrigado Motta, foi com certeza estudar o caso e se conseguir a solução retorno aqui no tópico. Compartilhar este post Link para o post Compartilhar em outros sites