3
respostas

Bom dia, dúvida com multiplos sistema

Bom dia, tudo bem? Por exemplo, se eu tivesse um sistema web, por exemplo um sistema de barbearia, no caso se eu tivesse mais de um cliente, por exemplo.

4 barbearias, oque deve ser feito para separar uma barbearia da outra? porque assim penso eu que ia ser uma bagunça, imagino um cliente vendo os usuario do outro que adicionou no sistema, entre outro problemas grave que pode ocorrer,

Teria alguma como gerenciar? No exemplo o cliente colocar o email e senha dele, e entrasse na propria barbearia cadastrada, acho que seria a melhor forma assim, ai cada requisição teria a sua propria barbearia, é possivel? Tem alguma coisa que possam me passar para enteder o processo melhor?

3 respostas

Oi Alisson,

Para esse tipo de situação tem uma solução conhecida como Multitenancy, cujo proposito é separar os múltiplos clientes de uma mesma aplicação, para que um não vjea/modifique as informações dos outros.

Dá uma pesquisada a respeito.

Bons estudos!

Bom dia Alisson!

É possível separar as barbearias de várias maneiras.

Você pode ter várias cópias (instâncias) do sistema (código fonte e banco de dados) em servidores diferentes, ou até mesmo no mesmo servidor; mas isso tem um inconveniente óbvio que seria a difícil manutenção. Qualquer alteração do código fonte precisaria ser feita em vários lugares. É melhor, mais fácil e mais barato ter um só código fonte.

Você pode separar as barbearias no próprio código, ou em algum arquivo de configuração, mas eu creio que nenhum dos dois não seja boa prática pois quando você sair de 4 barbearias para 40, depois aumentar para 100, depois pode diminuir para 70, vai ter muito trabalho braçal para manter isso e é lógico que ninguém quer fazer isso. Seria bom alguém mais experiente e com mais conhecimento que eu falar algo a respeito aqui.

Entendo que o melhor lugar para separar é o banco de dados.

Você pode ter uma separação, por exemplo, na tela de login do Sistema. Claro que a tela de login é só o "front", a separação mesmo é lá por baixo dos panos. O usuário seleciona qual a barbearia dele, digita login e senha e autentica. E lista de barbearias pode vir de uma tabela de configuração do banco de dados.

O lado ruim dessa opção é que todo mundo vai saber quais são as barbearias que você atende, isso pode ser ruim. Dá pra contornar substituindo a "combobox" por um campo de texto mesmo, onde o usuário digita o nome da barbearia, aí ninguém saberia quais barbearias são seus clientes.

Você na realidade nem precisa forçar o usuário a dizer qual a barbearia dele, o login dele pode estar associado a uma barbearia e o sistema já vai direcioná-lo para a barbearia certa. Um usuário da barbearia A não vai ver as informações da barbearia B e vice-versa.

Enfim, espero ter ajudado.

Qualquer coisa estamos às ordens!

Legal Rodrigo, eu não conhecia esse termo "Multitenancy".

Fui pesquisar sobre e, adivinha, caí no blog da Caelum:

http://blog.caelum.com.br/um-produto-para-muitos-clientes-implementando-multitenancy/

Sempre com bom conteúdo! :-)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software