Estrutura para sistema web
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
Curtidas 0
Respostas
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!
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
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 ?
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
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...
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
26/03/2015
Entendo, poderia me cita uma simples com a tabela empresa(sistema multi-empresa), pessoa, cliente, colaborador, usuario
GOSTEI 0
Marcos P
26/03/2015
Uma simples tabela ?
Não entendi sua pergunta...
Não entendi sua pergunta...
GOSTEI 0
Thiago Santana
26/03/2015
Você poderia criar Schemas no seu banco de dados! É uma outra hipótese
GOSTEI 0
John Lima
26/03/2015
Thiago nunca trabalhei com mais de um schema =\ no postgres
GOSTEI 0
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
26/03/2015
Isso!
No seu banco você poderia ter vários schemas, cada schema correspondente à determinadas empresas, entendeu?
No seu banco você poderia ter vários schemas, cada schema correspondente à determinadas empresas, entendeu?
GOSTEI 0
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
26/03/2015
Nunca ouvi falar não sobre o Multi-Tenancy!
Mas e ai com ele consegue resolver seus problemas?
Mas e ai com ele consegue resolver seus problemas?
GOSTEI 0
John Lima
26/03/2015
É mais achei a meio vago a explicação
GOSTEI 0
Thiago Santana
26/03/2015
Chegou a alguma solução?
GOSTEI 0
John Lima
26/03/2015
Ainda não, não conseguir bora a aplicação para roda, apresenta alguns erro.
GOSTEI 0