Boa tarde,
Estou projetando um sistema que será modularizado e hospedado na nuvem junto com o banco de dados, mas estou com uma dúvida como proceder com o modo de trabalhar com o banco de dados.
Todos os módulos serão acessados através da mesma interface web.
A ideia é que o usuário só tenha controle sobre a interface sem se preocupar com instalações e manutenções.
Então pensei nessas abordagens:
- Apenas um banco de dados onde armazena todos os meus usuários inscritos e seus dados.
- Criar um banco de dados matriz onde armazena os registros principais de cada usuário e outros bancos de dados para cada módulo.
- Criar um banco de dados matriz como no item anterior contendo as credenciais para conectar a um banco de dados onde contém registros de todos os módulos apenas do usuário autenticado
Supondo que eu tenha 100 usuários:
- Na primeira abordagem se cada usuário possuir 1000 registros eu teria um banco de dados com 100 mil registros no total e crescendo a medida que o sistema vai adquirindo mais usuários.
- Na abordagem dois teria granularidade dos dados e poderia gerar duplicidade, mas poderia controlar isso utilizando ferramentas auxiliares.
- Na abordagem três apesar de o banco de dados só possuir os registros de um usuário específico eu teria problema com manutenção pois se precisar criar uma tabela teria que criar em 100 bancos de dados, então essa ta fora de cogitação.
Estou entre a abordagem um e dois e gostaria de ler a opinião de quem entende do assunto.
Obrigado.