Olá!
Quando se projeta um sistema para a nuvem, como é feita a modelagem do banco de dados? Existe alguma forma diferenciada de se trabalhar ou é feito da mesma maneira que se faria para um sistema web convencional?
Deixa eu tentar explicar melhor com um exemplo prático:
Vamos dizer que estamos criando um ERP Web que vai ser cloud. Ou seja, os clientes que usarem esse ERP não terão seu próprio servidor, estrutura, etc. Só vão fazer login em um link qualquer e usar.
Dentro deste ERP vamos ter um módulo de Vendas por exemplo. Esse módulo de Vendas vai ter uma tabela PEDIDOS.
Supondo que em média cada cliente que usar o ERP terá uns 100.000 pedidos, então essa tabela vai ter 100.000 registros. Supondo também que o nosso ERP tenha 200 clientes, então nossa tabela de pedidos chegará facilmente a 20.000.000 de registros.
Isso é um numero grande de registro, mesmo que tenhamos uma boa estrutura física (processadores, memória, etc.) e também um bom SGBD, além claro dos indices e chaves criadas corretamente para as tabelas. Ou seja, com o passar do tempo, o numero de pedidos de cada cliente e o numero de clientes que usam o ERP Web irá crescer e o numero de registros nesta tabela ficará cada vez maior, então a probabilidade de problemas de performance é muito alta.
Ai que pergunto. É assim mesmo que se modela o BD? Fica tudo em uma mesma base de dados e as informações são separadas pela chave primaria de cada tabela mesmo? Ou existe alguma outra solução para isto? Quais são as alternativas.
Não sei se fui claro expondo a problemática, mas qualquer coisa só questionar que respondo. E se puderem ajudar, será bem vindo. Já procurei bastante na net sobre isto, mas não encontrei nada. Até porque não sei bem que pergunta fazer ao Google para ele me dar a resposta certa.
Abraço