Olá!
No teu caso, considerando que o processamento está centralizado em um único local, e que o que muda é a fazenda, creio que a melhor solução seja um banco de dados único, onde haveria um identificador da fazenda em todas as tabelas onde fosse necessário. Nada de novo. Apenas um sistema multiempresa ou, neste caso, multifazenda.
As transições: no login, solicitar ao usuário que identifique com qual fazenda ele quer trabalhar. Criar e exibir um botão ou algo parecido, em algum lugar da tela, que dispare a funcionalidade "Trocar de fazenda". Nesta funcionalidade, executar a rotina de logout (algo que limpe a fazenda atual) e exibir o form de login novamente, reiniciando o processo.
Em alguma variável do sistema sempre existirá a informação da fazenda correntemente selecionada. Sempre que precisar recuperar ou atualizar informações do banco de dados, envolver esta variável na clausula WHERE dos comandos SELECT e UPDATE ou passar a variável como parâmetro nas stored procedures.
JoséQuintas escreveu:Tem gente que prefere uma base de dados diferente pra cada empresa/filial
Concordo,mas por empresa + filial. Muito usado em hospedagem de Sites.
JoséQuintas escreveu:Tem gente que cria tabelas diferentes pra cada empresa/filial, tipo cliente01, cliente02...
Deus me livre... acho loucura...
JoséQuintas escreveu:Tem gente que cria um campo indicando a empresa/filia
É o que proponho, sendo a base de dados única.