Olá Pessoal !
Estou terminando uma aplicação para área Comercial, e preciso que esta aplicação seja multi bancos.
Imagino ela assim, o tramite de segurança devera pertencer a um determinado banco de dados onde terei uma tabela com meus clientes cadastrados, ao usuário logar, a base de dados indicara que o usuário pertence a empresa “X” (informação que deverá estar na tabela de usuários), a qual deverá ter um caminho da base de dados a ser utilizado pelo sistema, para usar a empresa “X”. Vi um exemplo no Scriptcase, uma vez que entendo que a melhor forma seria essa, minha aplicação está praticamente pronta para colocar no ar, preciso agora criar esta rotina para termina-la e gostaria da colaboração de vcs me passando alguma dica.
O caminho da pedras seria este mesmo ?
Joelton
Já li esses tópicos, alguns tem um bom tempo, formei opinião a partir deles, gostaria de chancelar minha opinião através de outras opiniões, mas, agradeço por me passar o link da pesquisa…
Multibanco…
Eu não faria devido a manutenção do sistema posteriomente… apenas 1 aplicação e 1 banco… logo assim apenas colocaria código da empresa em todas as tabelas e pronto, sempre trabalhando com este filtro… simples assim…
Opa…
Agora sim… obrigado pela resposta.
Então, na verdade essa situação de ter uma base de dados realmente é mais simples na hora da manutenção, um script e tudo se resolve, mas, tenho dado preferencia por a ter varias bases por algumas questões, desde performance, até mesmo segurança… ainda porque a Aplicação é multi empresas também e então os filtros vão ficar muito chatos…rsrsrs
mas, vou repensar aqui !
Filtros são feitos apenas uma vez, atualizações são constantes…
Performance tanto quanto segurança, isto é questão da estrutura que tem… aplicações devem no mínimo estar em VPS, em estrutura que você comanda… compartilhada é um tiro no escuro…
E sugiro, banco e aplicação no mesmo lugar… fica a sugestão…
eu fiz um, mas não tenho esta tabela inicial de ter todos os usuários vinculados as empresas
passo por parâmetro : www.dom/aplicacao?Cli=123
eu criei um blank Chamada Principal, dentro dela recebo o código da empresa que vou conectar o banco, ex:
$Cliente = sc_sql_injection(strtolower(trim($_REQUEST[“Cli”])));
pesquiso e atribuo os valores ao banco que vou conectar
$HostInfo
$nomeDB
$usuarioDB
$senhaDB
[NomeClienteLogado]
[CodClienteLogado]
[LogoClienteLogado]
[DirClienteLogado] // este uso para o local onde são salvos arquivos de upload
e mudo a conexão para o capturado:
sc_connection_edit(“conn_Gestao”,
array(“database”=>$nomeDB,“server”=>$HostInfo, “user”=>$usuarioDB,“password”=>$senhaDB));
Dai para frente fica no banco atual, funciona bem, fica rápido para cada empresa
Eu optei por separar os bancos por empresa que que se juntasse hoje teria um banco com mais milhões de registros
Minha opinião quanto a tudo que estudei antes de arquitetar meu sistema, e cheguei a seguinte conclusão…o maior problema não é o tamanho, mas o numero de queries que pode suportar em um determinado momento, e isto indeferi a quantidade bancos, mas a estrutura que estes estão, se pensar em colocar em outro servidor o banco, aí terá sérios problemas… logo o motivo que cheguei e foi 1 banco apenas… Fora que faço o banco trabalhar, em processos grandes uso procedures e trigger juntos…
Mas interessante sua experiência…
Como e qual rotina usa para atualizar todos os bancos? Qual banco é? Eu uso Mysql/MariaDB…
Vai de caso para caso,
Tenho um sistema de cobrança que é multiempresas e usa um único banco e gerenciado por uma uma unica empresa
este multi-banco, é um sistema com empresas separadas e independentes
uso o MySql, sobre atualizar os bancos, voce fala da estrutura das tabelas? se sim, tenho uma rotina de alter table que funciona na mesma ideia da conexão inicial do sistema, conecta a cada base individual e faz a alteração quando necessário.
Jair,
Muito joia, meu amigo !
Vou pensar alguma coisa por ai,
Abração…
Ta certinho Joelton !
Realmente o problema não é o tamanho do banco de dados em si.
Bom dia. anselmo. Tenho um sistema q trabalha com mult empresas, sendo q as aplicações e libs (pasta do site) é apenas um, porém, cada cliente tem seu banco de dados independente. Optei por este modelo, pois tenho mais autonomia no banco de dados (preferencia minha).
Cada empresa tem um subdominio. Quando abre o login, o sistema pega, pelo subdom., os dados de conexao do cliente e muda a conexao dinamicamente para este cliente.
Caso tenha interesse nesse modelo posso te ajudar.
grato,
Fala Marcio,
Obrigado por responder !
Rapaz tenho interesse sim, não conheço bem a ferramenta, mas, estou aprendendo.
Consegui montar o esquema e teoricamente estará funcionando, estou agora na situação dos Menus, quando esconder e quando desabilitar… até então este tem sido meu desafio do dia…
A partir das informações aqui tenho andado com o meu projeto, o pessoal te me dado uma força com algumas sugestões e soluções, fico grato por me ajudar também…
Pode me falar mais sobre esse subdomínio, o porque do uso e pra que seve ?