Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brunoagne3

BD Decentralizado

Recommended Posts

Olá a todos, O assunto é Banco de Dados Descentralizado! (o título ficou errado não sei como alterar rrss)

Bom, eu estou projetando um Sistema Web(XAMPP), que deverá seguir o seguinte esquema:

 

1) estação cliente (filial) -> acessa servidor XAMPP LOCAL via intranet.

1.1) Cada (filial) funcionará de forma independente, só tendo acesso para a leitura/alteração dos dados locais.

1.2) O mysql local (filial) -> envia uma cópia mensal dos dados para um SERVIDOR EXTERNO (matriz).

1.3) O Servidor EXTERNO (matriz)-> receberá a cópia de 30 (filiais) uma em cada bairro, e a (matriz) poderá ser acessada de qualquer local da web juntando todos os dados para CONSULTA. não será feita alteração nos dados da (filial).

1.4) Alguns locais não possúem internet (aréa rural) e terão que exportar os dados do mysql via arquivo (cd/pendrive).

 

sobre o banco mysql:

1) em cada tabela eu coloquei um campo id_filial (todos os registros tem esse campo).

2) a idéia era que todas as filiais e a matriz tivessem a mesma estrutura do banco de dados, porém a matriz teria o somatório de todos os registros de todas as filiais, e cada BD da filial teria apenas o registro da sua filial.

3) as tabelas são innodb e o banco está na 3º FN.

 

ufa.... rssss

 

Minhas dúvidas são as seguintes:

1) isso dá pra fazer com mysql???

2) a parte de exportação (filial) e importação(matriz) qual seria a melhor forma para esse caso?

3) quais cuidados eu devo tomar? alguma dica?

 

agradeço qualquer contribuição! uma novidade na vida dos programadores -> o prazo é muuuuuuito curto! rssssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em tese, é possivel de ser feito sim.

Precisa verificar se o Mysql pode gerar um arquivo de backup agendado e depois por meio de outro programa ou do proprio sistema verificar se o arquivo existe e enviar para a matriz via e-mail, ficando a cargo da matriz realizar o update.

Outra possibilidade é se houver uma forma de acessar os bd´s das filiais remotamente, e assim realizar esse update na matriz, seja pelo proprio sistema seja por alguma ferramenta do mysql fazer isso.

Pessoalmente tentaria pelo prorio sistema, assim fica o mais automatizado possivel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado, mas gostaria de saber se alguem aqui do forum ja fez algo parecido e possa me dar uma dica mais direta (na prática) e com base em alguma experiencia q fez.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Criar uma ferramenta própria para exportação e importação dos dados, pode até ser web.

- Usar uma tabela para controle de exportações (exemplos: data e hora da última exportação, método - arquivo ou online, usuário que executou).

- Muitos desses dados podem ser repetidos, desta forma sugiro criar, para cada registro, data e hora da última alteração, desta forma você apenas leva os dados novos ou alterados após a última exportação.

- Melhor formato para exportar e importar não existe, mas sugiro XML (com algumas informações criptografadas, se for o caso).

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Criar uma ferramenta própria para exportação e importação dos dados, pode até ser web.

- Usar uma tabela para controle de exportações (exemplos: data e hora da última exportação, método - arquivo ou online, usuário que executou).

- Muitos desses dados podem ser repetidos, desta forma sugiro criar, para cada registro, data e hora da última alteração, desta forma você apenas leva os dados novos ou alterados após a última exportação.

- Melhor formato para exportar e importar não existe, mas sugiro XML (com algumas informações criptografadas, se for o caso).

 

muito obrigado pela contribuição, mas deixa eu te perguntar:

- para os clientes que não possuem internet e que o sistema rodará local, estou na dúvida se uso o mysql também (igual o servidor) ou se uso outro tipo "firebird", é pq esses clientes tem apenas 1GB ram, tenho medo de ficar pesado o mysql localmente. alguma dica????

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Firebird pode atender muito bem a maioria dos sistemas de pequeno e médio porte, mas não existe uma fórmula para medir se este ou aquele projeto vai dar mais certo com este ou aquele banco de dados, se for o caso, você pode usar até um ambiente mais leve, como o SQLite.

 

Esse SGDB vai rodar em equipamento apropriado? Vai rodar sozinho ou junto com outros programas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se valem meus dois centavos, eu experimentei o SQLite para armazenar um volume maior de dados e sinto dizer que não é lá muito eficaz com relação a queries sem condicionais.

 

Fiz dois testes em paralelo com MySQL e a mesma query, no mesmo ambiente, com as mesmas configurações rodou quase que instantaneamente no MySQL e levou uns dois ou três segundos no SQLite.

 

Em contrapartida, para consultas específicas e bem condicionadas, funciona muito bem. Parece até que ele gera uma espécie de cache pois uma mesma query executa perceptivelmente mais rápido a partir da segunda vez que é feita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Firebird pode atender muito bem a maioria dos sistemas de pequeno e médio porte, mas não existe uma fórmula para medir se este ou aquele projeto vai dar mais certo com este ou aquele banco de dados, se for o caso, você pode usar até um ambiente mais leve, como o SQLite.

 

Esse SGDB vai rodar em equipamento apropriado? Vai rodar sozinho ou junto com outros programas?

 

pois é, vai rodar junto com: "word", "firefox" etc..., é um pc comum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu optaria por uma opção mais "leve". Minha primeira opção seria o SQLite, e o Firebird ficaria como segunda opção. Dada a característica do equipamento informado, nem cogitaria os demais.

 

Para o banco de dados onde faria a consolidação de todos os dados, você pode pensar numa solução mais robusta, mas o Fireird não é má escolha.

 

Você já possui afinidade com esse SGBD ou esta sugerindo esta opção por outras razões?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu optaria por uma opção mais "leve". Minha primeira opção seria o SQLite, e o Firebird ficaria como segunda opção. Dada a característica do equipamento informado, nem cogitaria os demais.

 

Para o banco de dados onde faria a consolidação de todos os dados, você pode pensar numa solução mais robusta, mas o Fireird não é má escolha.

 

Você já possui afinidade com esse SGBD ou esta sugerindo esta opção por outras razões?

 

minha afinidade é mysql, mas como é a primeira vez que faço um projeto assim "BD descentralizado", vim aqui procorar sugestões...

 

muito obrigado mesmo pelo apoio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até hoje, a única diferença que percebi entre a sintaxe MySQL e SQLite são os quote identifiers.

 

No MySQL, costuma-se usar crase ( ` ). No SQLite, é aspa dupla. Aspa simples ou crase faz retornar tudo errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.