Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

clientes com informações isoladas na mesma aplicação

Olá! Gostaria de pedir uma ajuda sobre uma dúvida/necessidade, estou criando um projeto Java Web, utilizando Spring MVC e MySql, é um sistema de controle de estoque, coisa "simples" a questão maior é que eu precisaria que o cliente conseguisse acessar o sistema, criar um login e senha e ter os seus próprios dados, produtos, clientes, coisas do tipo, tudo feito de maneira automática pela aplicação, ai chega a minha dúvida, qual das duas formas a seguir é melhor:

Uma maneira da aplicação criar um banco de dados específico para esse cliente, onde ao acessar com seu login e senha a aplicação redireciona para esse banco e então o cliente tem acesso as suas coisas apenas;

Criar uma coluna em cada tabela, usando por exemplo o CNPJ, que indica a quem pertence cada produto, e ai então cada cliente só consegue ver os produtos onde o CNPJ é o igual ao de quem está logado.

Peço desculpas caso seja ignorante de minha parte essas ideias, se puderem me indicar uma direção melhor que essas duas ficarei muito grato!

Um último detalhe, precisaria que cada cliente tivesse mais de um login, não sei se isso influencia.

Desde já muito obrigado pela atenção de cada um que ler meu post! Bons estudos a todos!

4 respostas
solução!

Olá Pedro, eu entendi a sua questão mas não entendi a finalidade.

Se você puder me responder essas perguntas fica mais facil de eu conseguir te auxiliar um pouco com as dúvidas:

  1. As tabelas para cada cliente são iguais, apenas mudando a informação?
  2. O cliente tem acesso ao banco de dados e tem a necessidade de ter um backup a cada x dias?

Já adiantando, se a sua resposta for respectivamente Sim e Não, então não tem a necessidade de fazer banco de dados separados, apenas fazer uma estrutura de banco de dados mais relacionado e dependende onde, partindo de um usuário com um cnpj, você vai ter acesso a todas as informações dele.

Olá André, obrigado pela resposta, então, respondendo as tuas perguntas:

  1. Sim, as tabelas são exatamente as mesmas;
  2. Backups não são necessários, somente listagens, mas acredito que não influenciaria nessa questão.

Em resumo, em cada tabela vou ter uma coluna que relaciona a qual dos clientes pertence a informação, isso?

Bom dia Pedro. Desculpe o retorno tardio. Sim, é isso mesmo. Ao criar a sua aplicação você especifica e faz as suas queries baseadas no usuário autenticado e suas permissões para que não sejam cruzadas as informações.

Quanto mais bem relacionado, de maneira própria, e assentado a sua estrutura do banco de dados, mais ágil e menos complicado para acessar a informação ele fica. Não existe a necessidade para banco de dados múltiplos uma vez que a aplicação está tratando corretamente a informação.

Perfeito André, muito obrigado! Estou longe de chegar nesse ponto de minha aplicação, ainda estou tentando aprender o suficiente de AJAX pra manipular em tempo real minhas páginas, mas chegando lá sei que já tenho uma luz aqui nesse tópico.