Agradeço pela resposta, Tiago!
Você está falando sobre associar diretamente os tenants às funcionalidades?
Atualmente, meu cenário é o seguinte:
Tenant 01 está no plano Básico, que permite o cadastro de até 5 usuários por mês.
Se Tenant 01 estivesse no plano Médio, ele poderia cadastrar até 10 usuários por mês. Este padrão se repete para os outros planos, onde cada plano tem seu próprio limite de usuários que podem ser cadastrados mensalmente.
A ideia é ajustar as funcionalidades disponíveis para cada tenant com base no plano ao qual ele está associado. Ou seja, preciso ter o fluxo de Tenant -> Plano -> Funcionalidades.
Pensei também ná ideia de criar 3 tabelas, uma pra tenant, outra pra planos e remover a coluna funcionalidades de planos e criar uma tabela funcionalidades, vinculando com planos, mas acreditaria que seria consultas a mais né? Aí seria mais simples colocar o json na tabela planos diretamente
Você poderia dar mais detalhes sobre os seus dados. Você só falou sobre número de usuários. Para isso, nem precisaria de relacionamentos.
Agora, vamos supor que existam mais opções. Digamos:
Básico
- usuários: 5
- email personalizado: false
- domínio próprio: false
- notas fiscais por mês: 100
- armazenamento: 100mb
Prata
- usuários: 10
- email personalizado: false
- domínio próprio: false
- notas fiscais por mês: 500
- armazenamento: 500mb
Ouro
- usuários:100
- email personalizado: true
- domínio próprio: true
- notas fiscais por mês: 1000
- armazenamento: 1gb
Neste caso, essa seria a sua tabela de planos. Casa coluna era uma funcionalidade.
Agora sua tabela tenant apenas precisa armazenar o id do plano.