Temos vários clientes, cujos sistemas compartilham algumas funcionalidades, mas também possuem um grau bastante diversificado. O número de clientes está crescendo - sempre uma coisa saudável! - e a diversidade entre seus negócios também está aumentando.
Atualmente, existe um único site ASP.Net (Web Forms) (em oposição ao projeto da web), que possui subpastas para cada inquilino, com as páginas não padrão desse inquilino. Há um projeto de modelo separado, que trata do acesso ao banco de dados e da lógica de negócios.
Qual é preferível - e mais importante, por quê - entre ter (a) 1 banco de dados por cliente, apenas com os recursos associados a esse cliente; ou (b) um único banco de dados compartilhado por todos os clientes, onde apenas um subconjunto de tabelas é usado por qualquer cliente.
As principais preocupações da empresa acabaram:
- manutenção de vários ativos - backups, controle de versão e similares
- promover a reutilização, tanto quanto possível
Como você garantiria que essas preocupações fossem abordadas, qual solução é preferível e por quê? (Também compilei respostas para perguntas semelhantes)