Duvida de infraestrutura

MySQL

25/07/2014

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.
Lucas Carvalho

Lucas Carvalho

Curtidas 0

Melhor post

Joel Rodrigues

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:
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

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]
GOSTEI 0
Lucas Carvalho

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
GOSTEI 0
Alan Mario

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

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.
GOSTEI 1
Lucas Carvalho

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.
GOSTEI 0
Alan Mario

Alan Mario

25/07/2014

a resposta do Joel caiu bem para a sua duvida. te agradeço tambem!!!
GOSTEI 0
POSTAR