Executando verificação de segurança...
1

Se o projeto é pequeno, o tenant_id vai ser suficiente e mais simples para ser usado agora.

Quando o sistema precisar de mais escala, você pode separar os clientes em grupos e definir um instância do banco para atender aquele grupo, o tenant_id ainda será usado dentro de cada instância.

Se você tiver um grande cliente, que necessita de um poder de banco de dados maior você cria uma instância só para ele, mas não vai precisar mudar nada na aplicação pois será um base de dados que terá apenas um tenant_id, a aplicação nem sabe que mudou alguma coisa.

Provavelmente você vai precisar de algum tipo de Front Controller ou API Gateway para direcionar as requisições para as instâncias corretas, mas até isso ser necessário, vai no mais simples que é melhor.

Carregando publicação patrocinada...
1

Muito obrigado, projeto é relativamente pequeno porém vai escalonar rápido. Acho que vou começar com db compartilhado mesmo, caso futuramente venha a acontecer problemas, eu separo em schemas. A questão de separar caso seja um grande cliente não sei se seria viavel, pois ao se registrar na aplicação o usuário vai escolher um plano e após efetuar o pagamento já estara apto pra utilização, então não vou ter um controle sobre o tamanho da empresa do cliente.