Duvida de infraestrutura
Pessoal tenho um sistema escrito em C# com banco de dados MySQL, não é um sistema complexo, apenas PDV com um retaguarda de cadastros e relatórios.
Mas surgiu a seguinte situação minha cliente quer unificar os cadastro de um aloja com outra loja dela o sistema roda em 3 lojas e ela quer poder verificar estoque e cadastro de clientes em qualquer loja. Duvida: qual a melhor solução para a sincronização de dados de clientes e produtos.
Mas surgiu a seguinte situação minha cliente quer unificar os cadastro de um aloja com outra loja dela o sistema roda em 3 lojas e ela quer poder verificar estoque e cadastro de clientes em qualquer loja. Duvida: qual a melhor solução para a sincronização de dados de clientes e produtos.
Lucas Carvalho
Curtidas 0
Melhor post
Joel Rodrigues
25/07/2014
Olá, tudo bem?
Aqui na empresa onde trabalho nós utilizamos um método (já é antigo, mas vem atendendo às necessidades até agora) que consiste, basicamente, de adicionar um campo LOJA nas tabelas. Por exemplo, se originalmente você tinha seu cadastro de produtos da seguinte forma:
então você passaria a ter:
indicando que o produto foi cadastrado em tal loja. A chave primária passa a ser composta, incluindo o código da loja. Assim, o produto 1 da loja A pode ser diferente do produto 1 da loja B.
Para fins de comercialização, é preciso ficar atento, pois no caso do PDV apenas o estoque da loja local deve ser consultado. Aí você pode oferecer uma funcionalidade extra de consulta do estoque de outra lojas.
Aqui na empresa onde trabalho nós utilizamos um método (já é antigo, mas vem atendendo às necessidades até agora) que consiste, basicamente, de adicionar um campo LOJA nas tabelas. Por exemplo, se originalmente você tinha seu cadastro de produtos da seguinte forma:
Referencia, Descricao, Preco
então você passaria a ter:
Referencia, Descricao, Preco, Loja
indicando que o produto foi cadastrado em tal loja. A chave primária passa a ser composta, incluindo o código da loja. Assim, o produto 1 da loja A pode ser diferente do produto 1 da loja B.
Para fins de comercialização, é preciso ficar atento, pois no caso do PDV apenas o estoque da loja local deve ser consultado. Aí você pode oferecer uma funcionalidade extra de consulta do estoque de outra lojas.
GOSTEI 1
Mais Respostas
Alan Mario
25/07/2014
Lucas, irei aguardar, alguma pessoa que ja tenha feito isso, é até melhor obter informações de quem tem experiencia no assunto que tenha duvida. estarei acompanhando para conhecimento.
segue alguns links, não sei se já viu:
[url]http://www.devin.com.br/replicacao-mysql/[/url]
[url]http://wiki.locaweb.com.br/pt-br/Como_sincronizar_bases_MySQL_via_phpMyadmin[/url]
segue alguns links, não sei se já viu:
[url]http://www.devin.com.br/replicacao-mysql/[/url]
[url]http://wiki.locaweb.com.br/pt-br/Como_sincronizar_bases_MySQL_via_phpMyadmin[/url]
GOSTEI 0
Lucas Carvalho
25/07/2014
Então essa questão da replicação do MySQL eu já tinha visto, mas fiquei na duvida o que seria melhor criar um software para sincronizar os dados, fazer a sincronização via banco de dados, como eu posso fazer para que as lojas não incluam produtos e clientes com mesmo código exemplo Loja 1 INSERT produtos(codigo, descricao) VALUES (NULL, 'Produto 1')
E a Loja 2 executa o mesmo comando no banco de dados como fazer para que os registro não se misturem para eu ter certeza que o produto 1 na loja 1 é o mesmo produto 1 na loja 2 e loja 3
E a Loja 2 executa o mesmo comando no banco de dados como fazer para que os registro não se misturem para eu ter certeza que o produto 1 na loja 1 é o mesmo produto 1 na loja 2 e loja 3
GOSTEI 0
Alan Mario
25/07/2014
agora vc me pegou, é bom fazer uma uma pesquisa e depois uma modelagem, acredito que terá que fazer umas modificações no banco(inserir mais campos).
GOSTEI 0
Joel Rodrigues
25/07/2014
Ah, e sobre a sincronização, nós procedemos da seguinte forma: no final do dia, cada loja cria um arquivo e envia para o retaguarda, contendo a movimentação diária e as modificações nos cadastros (inclusões, e alterações). O retaguarda lê os arquivos de cada loja e envia um novo arquivo para cada uma delas, já com os cadastros atualizados.
O problema desse método é que os cadastros só são atualizados uma vez por dia.
Como contornar isso?
1) Replicação no BD;
2) Exportar os dados periodicamente, ou a cada modificação (pode gerar muito tráfego de arquivos entre lojas);
3) Usar um único banco unificado (nuvem pode ser uma solução), mas isso pode gerar lentidão, dependendo da quantidade de acessos simultâneos e conexão com a internet.
4) Manter um banco local para as principais funções e um banco remoto para a sincronização entre as lojas (como no exemplo do Consultar Estoque de Outra Loja). Esse banco poderia ser atualizado constantemente, por exemplo utilizando um processo assíncrono em background.
Espero ter ajudado.
O problema desse método é que os cadastros só são atualizados uma vez por dia.
Como contornar isso?
1) Replicação no BD;
2) Exportar os dados periodicamente, ou a cada modificação (pode gerar muito tráfego de arquivos entre lojas);
3) Usar um único banco unificado (nuvem pode ser uma solução), mas isso pode gerar lentidão, dependendo da quantidade de acessos simultâneos e conexão com a internet.
4) Manter um banco local para as principais funções e um banco remoto para a sincronização entre as lojas (como no exemplo do Consultar Estoque de Outra Loja). Esse banco poderia ser atualizado constantemente, por exemplo utilizando um processo assíncrono em background.
Espero ter ajudado.
GOSTEI 1
Lucas Carvalho
25/07/2014
Joel Rodrigues muito obrigado foi muito esclarecedor, mas estive pesquisando e estou pensando em utilizar a sincronização direto pelo mysql e restruturar minhas duas tabelas.
Pensei em deixar um faixa de registro por loja EX: Loja 1 de 1 á 1.000.000 Loja 2 1.000.001 á 3.000.000 Loja 3 de 3.000.001 á x
Será que esse procedimento é aconselhável, as três lojas são na mesma cidade a cidade tem 65.000.000 habitantes então imagino que nemhuma das lojas vai conseguir alcançar o número máximo de cadastro proposto pelo banco de dados.
Pensei em deixar um faixa de registro por loja EX: Loja 1 de 1 á 1.000.000 Loja 2 1.000.001 á 3.000.000 Loja 3 de 3.000.001 á x
Será que esse procedimento é aconselhável, as três lojas são na mesma cidade a cidade tem 65.000.000 habitantes então imagino que nemhuma das lojas vai conseguir alcançar o número máximo de cadastro proposto pelo banco de dados.
GOSTEI 0
Alan Mario
25/07/2014
a resposta do Joel caiu bem para a sua duvida. te agradeço tambem!!!
GOSTEI 0