Banco de dados multilocatário. Estratégia para identificação e autorização do documento

Estou pensando em ter DBs separados (um por empresa) versus um DB com vários inquilinos (com todas as empresas). Critério:

Um usuário pode pertencer a apenas uma empresa e não pode acessar documentos de outras empresas.Um administrador do sistema precisa manter bancos de dados para todas as empresas.Número de empresas / inquilinos - de centenas a dezenas de milharesHá um ponto de entrada com autenticação para todas as empresas / inquilinos (ele resolverá o inquilino e o endereçará no banco de dados correto).

Questão 1. Existem "boas práticas" para projetar um banco de dados multilocatário no RavenDB?

Existe um similarpost para MongoDB. Seria o mesmo para o RavenDB? Mais registros afetarãoíndices, mas seria possível que alguns inquilinos sofressem com o uso ativo de um índice por outros inquilinos?

Se eu fosse projetar um banco de dados multilocatário paraRavenDB, então eu vejo a implementação como

ter uma tag por empresa / locatário, para que todos os usuários de uma empresa tenham permissão para a tag da empresa e todos os documentos de nível superior tenham a tag (consulteKB no pacote de autenticação)ter uma etiqueta de ID do inquilino como prefixo para cada ID do documento (devido aorecomendação oficial usar identificadores sequenciais e estou feliz em gerar IDs no servidor)

Pergunta # 2.1. Está etiquetando a melhor maneira de utilizar oPacote de Autorização para resolver as permissões dos usuários e impedir o acesso a documentos de outros inquilinos?

Pergunta # 2.2. Qual a importância de ter o ID do inquilino no prefixo de ID dos documentos de nível superior? Acho que a principal consideração aqui é o desempenho, uma vez que as permissões são resolvidas por meio de tags ou estou perdendo alguma coisa?

questionAnswers(2)

yourAnswerToTheQuestion