Estrutura para sistema web

Java

Modelagem

26/03/2015

Bom dis estou com um sistema web rodando,onde posso fazer cadastro de cliente produto, contas a pagar e receber e a emissão de nfe, porem para cada cliente tenho que criar um banco novo e distribuir os fontes. Gostaria de saber como eu faria para poder com um unico sistema antender N clientes, ou seja, o cliente entraria no site faria o cadastro logo seria redirecionado para sua pagina administrativa
John Lima

John Lima

Curtidas 0

Respostas

Thiago Santana

Thiago Santana

26/03/2015

Jonh, existem várias possibilidades!
Vou te dá um exemplo:

Todas as suas tabelas terem o ID do cliente assim em todas as operações você filtraria pelo ID Cliente logado!

Mas existem várias situações!
GOSTEI 0
John Lima

John Lima

26/03/2015

Realmente eu pensei nessa possibilidade, meu medo é sei la de hum dia acontecer de algum cliente ter acesso aos dados de outra empresa.

Se eu fosse fazer isso na minha modelagem de dados atual eu iria acrescentar uma nova tabela chamada ClienteWeb no qual, se relacionaria com todas as tabelas, ou seja, um join, sendo assim não iria ter um custo alto por causa da quantidade de Join que o sistema ira fazer ?
GOSTEI 0
Marcos P

Marcos P

26/03/2015

Não há como resolver isso sem alterar a modelagem de dados.

A ideia geral, seria criar uma referência à empresa ( cliente ) nas tabelas e "filtrar", após o login no lado da aplicação, somente aos registros da empresa.

Para resolver a questão de 1 ( usuário ) x N ( empresas ), você pode criar uma tabela simples de relacionamento que armazene as empresas as quais aquele usuário tem acesso...
GOSTEI 0
John Lima

John Lima

26/03/2015

Entendo, poderia me cita uma simples com a tabela empresa(sistema multi-empresa), pessoa, cliente, colaborador, usuario
GOSTEI 0
Marcos P

Marcos P

26/03/2015

Uma simples tabela ?

Não entendi sua pergunta...
GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015

Você poderia criar Schemas no seu banco de dados! É uma outra hipótese
GOSTEI 0
John Lima

John Lima

26/03/2015

Thiago nunca trabalhei com mais de um schema =\ no postgres
GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015

GOSTEI 0
John Lima

John Lima

26/03/2015

Thiado o que está sugerindo é que eu crie um banco em outro esquema contendo ex tabelas de cliente, usuario e pagamento certo? ao logar o sistema iria pega essas informações dentro do schema, buscar dados de acordo que essas informações ?
GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015

Isso!
No seu banco você poderia ter vários schemas, cada schema correspondente à determinadas empresas, entendeu?
GOSTEI 0
John Lima

John Lima

26/03/2015

estava pesquisando aqui esse tipo de aplicação de chamar Multi-Tenancy no qual o proprio hibernate tem suporte
GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015

Nunca ouvi falar não sobre o Multi-Tenancy!
Mas e ai com ele consegue resolver seus problemas?
GOSTEI 0
John Lima

John Lima

26/03/2015

GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015



Legal a idéia!
GOSTEI 0
John Lima

John Lima

26/03/2015

É mais achei a meio vago a explicação
GOSTEI 0
Thiago Santana

Thiago Santana

26/03/2015

Chegou a alguma solução?
GOSTEI 0
John Lima

John Lima

26/03/2015

Ainda não, não conseguir bora a aplicação para roda, apresenta alguns erro.
GOSTEI 0
POSTAR