[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Davisson Charles
Criador Davisson Charles 24/02/2020

Bom dia, estou com uma duvida não sei se foi falta de atenção minha, mas todas as minhas models deverá ter um relacionamento com a model de tenant? Se eu tiver centenas de tabelas no banco todas elas se relacionaria com a tabela de tenat esta correto isso?

Manager Carlos Ferreira 24/02/2020

Olá, Davisson!
Tudo bem?

No model single database é assim que funciona, porque você precisa ter a coluna "tenant_id" para identificar o tenant.

Por isso usamos uma trait de tenant para centralizar ao máximo as responsabilidades repetidas nela.

Qualquer dúvida amigo, me retorne.

Abs;

Carlos Ferreira
Criador Davisson Charles 24/02/2020

Entendi a necessidade de ser feito assim, mas no final teriamos uma tabela de tenat com 700 indices de relacionamentos, isso não seria uma má pratica? Teria alguma outra abordagem? Isso poderia ser feito usando a coluna de tenant_id apenas como um sinalizador ao invés de uma chave estrangeira ou realmente não há nenhum problema uma tabela com centenas de ligamentos?

Tenho essa duvida para casos de sistemas muito grandes e complexos com centenas de tabelas, se não ha problema em seguir com esse fluxo ou se teria alguma outra abordadgem

Davisson Charles
Manager Carlos Ferreira 24/02/2020

Olá, Davisson!

Sinceramente não vejo má prática, uma tabela ter N relacionamentos não é algo incomum... esse modelo é muito usado, inclusive em sistemas gigantes como o Conta Azul (e milhares de outros).

Agora sobre ter o relacionamento (foreign key) já é uma discussão interessante. Existem profissionais que defendem o não uso, já existem outros que defendem o uso para manter a integridade dos dados.

Vou te palpitar no meu caso, na maioria dos projetos que fiz sempre usei foreign key, e sempre atendeu bem.

Agora, para casos que achei complicado relacionar os dados procurei utilizar um banco de dados não relacional, como o MongoDB.

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!