Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Preciso criar uma aplicação em PHP que atenda a arquitetura multi-tenancy, ou seja varios usuários acesando a mesma aplicação, porém com banco de dados distintos.
Não sei nem por onde começar a modelagem deste sistema.
Alguém já desenvolveu ou está desenvolvendo uma aplicação deste tipo que possa me dar uma luz?
Qualquer ajuda é bem vinda.
Obrigado
Alguém?
Viável é, mas existe a real necessidade de haver um banco de dados pra cada usuário?
>
Viável é, mas existe a real necessidade de haver um banco de dados pra cada usuário?
Na minha visão sim, pois penso na questão de se por acaso acontecer algum problema com o banco de dados, apenas um cliente seria prejudicado, já com o banco compartilhado, em caso de problemas todos os clientes seriam prejudicados.
E os clientes não têm nenhuma relação uns com os outros?
Os clientes não terão relação uns com os outros não.
Com um sistema compartilhado consigo enxergar dificuldades também na questão de "isolamento" por cliente de customizações.
O que acha sobre isso Henrique?
A aplicação é relativamente grande, no inicio seriam pelo menos 15 clientes.
Seria melhor compartilhar o banco de dados, ou separar?
Opa,
Eu acho que a maioria das aplicações multi-tenant compartilham o banco de dados, mas são implementações mais simples.
Como quer separar tudo, ainda tem duas soluções: um banco com n schemas e bancos distintos. Eu costumo achar a do schema mais viável.
Não sei qual BD está utilizando... Nunca trabalhei com MySQL neste nível, mas se estiver utilizando PostgreSQL por exemplo, é bem simples fazer este tipo de aplicação criando vários schemas.
Caso tenha muitas customizações aí é melhor separar mesmo.
E já para a arquitetura, apesar de não trabalhar com PHP, acho que você decide qual BD acessar é no momento da requisição podendo ter todos os bancos de dados no mesmo lugar (com schemas é desta forma).
Legal Bruno obrigado pela dica, não havia pensado por esse lado.
Vou estudar um pouco mais sobre schemas.
Estive pesquisando sobre multi-tenancy no google e encontrei uma forma de "mascarar" a arquitetura.
Seria contratando um servidor de Cloud e criando um container para cada cliente.
Isso seria viável?